python - 根据其他数据框的列填充数据框列
问题描述
我有一个包含一个地区人口的数据框,我想填充一列具有相同分布的其他数据框。
第一个数据框如下所示:
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
有人能帮我吗?
解决方案
我会使用一个简单的理解来构建一个大小为 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 1
Santarém 1
Lisboa 1
Setúbal 1
Aveiro 1
..
Santarém 1
Porto 1
Lisboa 1
Faro 1
Aveiro 1
Name: Municipio, Length: 5000, dtype: int64
推荐阅读
- mysql - 在存储过程中使用临时表是一种好习惯,还是应该使用视图?
- php - Prestashop 1.7 禁用支付
- android - Android Studio 中模拟器的“qemu.conf:1: no group defined”崩溃
- node.js - Truffle 插件验证在全局或本地节点模块中未找到
- swift - 搜索过滤器以快速获取两个数字之间的值
- android - 将 .so 文件添加到 react 本机项目 (Android)
- r - 在 if else R 中为列使用变量名
- git - Git拒绝设置远程跟踪分支
- powershell - Powershell查找最新文件并在文件资源管理器中打开
- sql - 如何查找丢失的数字以及 Oracle 表中存在的数字