gpt4 book ai didi

Python:将值从一个数据框添加到另一个数据框(有多个条件)

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:19 25 4
gpt4 key购买 nike

我有两个数据框 df1df2那种看起来像这样:

例子:

x1 = [{'partner': "Afghanistan", 'trade_value':100, 'commodity': 1}, 
{'partner':"Zambia",'trade_value':110, 'commodity': 2},
{'partner': "Germany",'trade_value':120, 'commodity': 2},
{'partner': "Afghanistan",'trade_value':150, 'commodity': 2},
{'partner': "USA",'trade_value':1120, 'commodity': 5}];

df1 = pd.DataFrame(x1)

x2 = [{'country': "Afghanistan", 'commodity': 5, 'tariff': 3.5},
{'country': "Afghanistan", 'commodity': 3, 'tariff': 6.2},
{'country': "Afghanistan", 'commodity': 1, 'tariff': 9.9},
{'country': "Afghanistan", 'commodity': 2, 'tariff': 1.4},
{'country': "USA", 'commodity': 5, 'tariff': 4.3},
{'country': "Germany", 'commodity': 7, 'tariff': 6.5},
{'country': "Germany", 'commodity': 2, 'tariff': 8.8}];

df2 = pd.DataFrame(x2)

我想在 df1 中添加一个新列称为“关税”并在 df1 中分配每个“合作伙伴”和“商品”其适当的“关税”来自 df2 .

注意:有时是 df1 中的“伙伴”国家由于多次交易而重复。也不是所有关税都在 df2 中可用所以我不介意在 df1 中留下一个单元格空。

到目前为止我在这个阶段:

#Add new column
df1['tariff'] = 0;

for index, row in df1.iterrows():
for index, row2 in df2.iterrows():
if row['partner'] == row2['country']:
if row['commodity'] == row2['commodity']
#Dont know what to put here

如果我使用 df1['tariff'].replace(row['tariff'],row2['tariff'],inplace=True);我正在让所有关税栏都填满关税 9.9

df1 的输出应该是这样的:

|  partner   | trade_value | commodity | tariff |
|------------|-------------|-----------|--------|
| Afghanistan| 100 | 1 | 9.9 |
| Zambia | 110 | 2 | NaN |
| Germany | 120 | 2 | 8.8 |
| Afghanistan| 150 | 2 | 1.4 |
| USA | 1120 | 5 | 4.3 |

最佳答案

合并

您可以简单地使用 merge在重叠列上连接两个数据框:

pd.merge(left=df1, right=df2, how='left', left_on=['partner', 'commodity'],
right_on = ['country', 'commodity']).drop(['country'], axis = 1)

commodity partner trade_value tariff
0 1 Afghanistan 100 9.9
1 2 Zambia 110 NaN
2 2 Germany 120 8.8
3 2 Afghanistan 150 1.4
4 5 USA 1120 4.3

关于Python:将值从一个数据框添加到另一个数据框(有多个条件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53449608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com