gpt4 book ai didi

python - 基于列合并数据帧,只保留第一个匹配项

转载 作者:行者123 更新时间:2023-11-28 22:23:21 26 4
gpt4 key购买 nike

我有 2 个数据框,如下所示。

df_1    
Index Fruit
1 Apple
2 Banana
3 Peach

df_2
Fruit Taste
Apple Tasty
Banana Tasty
Banana Rotten
Peach Rotten
Peach Tasty
Peach Tasty

我想合并基于 Fruit 的两个数据帧,但只保留第一次出现的 AppleBananaPeach 在第二个数据框中。最终结果应该是:

df_output       
Index Fruit Taste
1 Apple Tasty
2 Banana Tasty
3 Peach Rotten

其中 FruitIndexTaste 是列标题。我尝试了类似 df1.merge(df2,how='left',on='Fruit 但它根据 df_2

的长度创建了额外的行

谢谢。

最佳答案

使用drop_duplicates对于第一行:

df = df_1.merge(df_2.drop_duplicates('Fruit'),how='left',on='Fruit')
print (df)
Index Fruit Taste
0 1 Apple Tasty
1 2 Banana Tasty
2 3 Peach Rotten

如果只想更快地添加一列,请使用 map :

s = df_2.drop_duplicates('Fruit').set_index('Fruit')['Taste']
df_1['Taste'] = df_1['Fruit'].map(s)
print (df_1)
Index Fruit Taste
0 1 Apple Tasty
1 2 Banana Tasty
2 3 Peach Rotten

关于python - 基于列合并数据帧,只保留第一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47050239/

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