gpt4 book ai didi

python - Pandas:根据两个数据集中的匹配列,用另一个数据集中的数据填充数据集中的列

转载 作者:行者123 更新时间:2023-12-01 08:23:03 25 4
gpt4 key购买 nike

我在尝试解决这个问题时遇到了困难。

我有两个数据集:dataset_1 和 dataset_2。我试图通过匹配 Dataset_1 和 Dataset_2 中的“id”在 dataset_1 中创建一个名为“name”的新列。本质上是将名称映射到相应的 id。

每个数据框中还有大约 10 个其他列,但对于这个问题来说它们不是必需的。

数据集中的列示例:

数据集_1:

id: 
1234
3267
12
1234
15

数据集_2:

id:         name:
12 jimbo
899 jim
3267 jimmy
1234 jimbob
899 jim

结果数据框:

数据集_1:

id:        name:
1234 jimbob
3267 jimmy
12 jimbo
1234 jimbo
15 jahad

(假设名称 15 - “jahad”在 Dataset_2 中更靠下)

非常感谢任何帮助。

最佳答案

您可以根据 df2 中的两列创建一个字典,并用于映射 df1 中的值:

print(df1)
id
0 1234
1 3267
2 12
3 1234
4 15

print(df2)
id name
0 12 jimbo
1 899 jim
2 3267 jimmy
3 1234 jimbob
4 899 jim

mapper = dict(zip(df2.id, df2.name))
# {12: 'jimbo', 899: 'jim', 3267: 'jimmy', 1234: 'jimbob'}

df1.loc[:,'name'] = df1.id.map(mapper)

id name
0 1234 jimbob
1 3267 jimmy
2 12 jimbo
3 1234 jimbob
4 15 NaN

关于python - Pandas:根据两个数据集中的匹配列,用另一个数据集中的数据填充数据集中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54497059/

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