根据其他数据框的列填充数据框列

我有一个包含区域人口的数据框,我想用相同的分布填充其他数据框的一列。


第一个数据框如下所示:


Municipio   Population  Population5000

0   Lisboa  3184984 1291

1   Porto   2597191 1053

2   Braga   924351  375

3   Setúbal 880765  357

4   Aveiro  814456  330

5   Faro    569714  231

6   Leiria  560484  227

7   Coimbra 541166  219

8   Santarém    454947  184

9   Viseu   378784  154

10  Viana do Castelo    252952  103

11  Vila Real   214490  87

12  Castelo Branco  196989  80

13  Évora   174490  71

14  Guarda  167359  68

15  Beja    158702  64

16  Bragança    140385  57

17  Portalegre  120585  49

18  Total   12332794    5000

基本上,第二个数据框有 5000 行,我想创建一个名称与第一个 df 中的 Municipios 相对应的列。


我的问题是我不知道如何从第一个数据帧中填充具有相同出现分布的列。


最终结果将是这样的:


Municipio

0 Porto

1 Porto

2 Lisboa

3 Évora

4 Lisboa

5 Aveiro

...

4996 Viseu

4997 Lisboa

4998 Porto

4999 Guarda

5000 Beja

有人能帮我吗?


梦里花落0921
浏览 133回答 3
3回答

潇潇雨雨

我会使用一个简单的理解来构建一个大小为 5000 的列表,其中包含与 的值一样多的城镇名称元素Population5000,如果您想要随机顺序,则可以选择将其洗牌:lst = [m for m,n in df.loc[:len(df)-2,                           ['Municipio', 'Population5000']].to_numpy()       for i in range(n)]random.shuffle(lst)result = pd.Series(1, index=lst, name='Municipio')用 初始化random.seed(0),它给出:Setúbal     1Santarém    1Lisboa      1Setúbal     1Aveiro      1           ..Santarém    1Porto       1Lisboa      1Faro        1Aveiro      1Name: Municipio, Length: 5000, dtype: int64

开心每一天1111

如果这样做,您可以只做一个简单的地图;map = dict(zip(DF1['Population5000'], DF1['Municipio'])) DF2['Municipo'] = DF2['Population5000'].map(map)或者只是将地图 (DF2) 中的 population 5000 列名称更改为包含您的人口值的任何列。

POPMUISE

map = dict(zip(municipios['Population5000'], municipios['Municipio']))df['Municipio'] = municipios['Population5000'].map(map)我按照 Amen_90 和第二个数据框中的 Municipio 列的建议进行了尝试,当我想拥有与第一个数据框中的“Population5000”列相同的 value_counts 时,它只填充了每个 Municipio 的一个实例。df["Municipio"].value_counts()Beja                1Aveiro              1Bragança            1Vila Real           1Porto               1Santarém            1Coimbra             1Guarda              1Leiria              1Castelo Branco      1Viseu               1Total               1Faro                1Portalegre          1Braga               1Évora               1Setúbal             1Viana do Castelo    1Lisboa              1Name: Municipio, dtype: int64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python