【发布时间】:2020-07-21 10:03:04
【问题描述】:
我有两个 pandas 数据框。
- 第一个 (df1) 有两列:“Country”(字符串)和“Population”(整数)。每行包含一个不同的国家/地区及其对应的人口(约 200 行)。
- 第二个 (df2) 也有两列:“Country”(字符串)和“Value”(int)。每个国家/地区以随机顺序出现的次数不定,并带有相应的值(数千行)。
我想将 df2['Value'] 中的每个值除以该行所在国家/地区的相应人口。
我的尝试:(假设有一个名为“国家”的列表,其中包含这些数据框中的所有国家/地区
for country in countries:
val = df2.loc[df2['Country'] == country]['Values'] # All values corresponding to country
pop = df1.loc[df1['Country'] == country]['Population'] # Population corresponding to country
df2.loc[df2['Country'] == country]['Values'] = val / pop
有没有更好的方法来做到这一点?也许是不涉及 for 循环的解决方案?
谢谢
【问题讨论】: