gpt4 book ai didi

Python:搜索和连接

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

我有 2 个数据框(data1 和 data2)。data2 是国家/地区列表。data1 是公司列表。在data2中,我故意复制了其中一个国家我想在 data1 中添加新列(国家/地区名称)。我可以使用 groupby、drop_duplicate 和 merge 来做到这一点。但这段代码太长了。有没有一种简单的方法来解决这个连接并从不同的数据帧检索值示例代码:

data1 = {
'Code': [1, 2, 3],
'Name': ['Company1', 'Company2', 'Company3'],
'CountryCode': [61,62,64],

}
df1 = pd.DataFrame(data1, columns= ['Code','Name','CountryCode'])

data2 = {
'CountryCode': ['61','62','64','62'],
'Country': ['Australia','Indonesia','NewZealand','Indonesia'],
}
df2 = pd.DataFrame(data2, columns= ['CountryCode','Country'])
print(df1)
Code Name CountryCode
0 1 Company1 61
1 2 Company2 62
2 3 Company3 64

print(df2)

CountryCode Country
0 61 Australia
1 62 Indonesia
2 64 NewZealand
3 62 Indonesia

What I want the output is for df1
Code Name CountryCode Country
0 1 Company1 61 Australia
1 2 Company2 62 Indonesia
2 3 Company3 64 NewZealand

最佳答案

country_dict = dict(zip(df2['CountryCode'], df2['Country']))
df1['Country'] = df1['CountryCode'].map(country_dict)

注意:在您提供的输入中,CountryCode 列在 df1 中是整数,但在 df2 中是对象。如果数据确实如此,请使用下面的代码。如果展位数据帧中的数据类型相同,则可以使用上面的代码。

df1['Country'] = df1['CountryCode'].astype(str).map(country_dict)

输出

  Code     Name     CountryCode     Country
0 1 Company1 61 Australia
1 2 Company2 62 Indonesia
2 3 Company3 64 NewZealand

关于Python:搜索和连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180782/

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