提问人:Bensa 提问时间:10/19/2023 最后编辑:not_speshalBensa 更新时间:10/19/2023 访问量:24
两个大小不同的 DataFrame 之间的字符串匹配,并返回匹配的索引和值
string match between two dataframe with difference sizes and return matching index and value
问:
我有 2 个不同大小的数据帧,我想比较并找到匹配的第一次出现。
较短的数据帧没有重复值,第二个数据帧具有相同值的多个实例。
对于较短数据帧 (df1) 中的每个行值,我想找到匹配字符串的第一个实例,并返回较大数据帧 (df2) 中另一列的索引和值。
df1 = pd.DataFrame({'type':['Apple3','Pear28','Banana0','Lime46']})
df2 = pd.DataFrame({'type':['Apple2','Apple3','Lime46','Apple3','Lime46','Pear28'],'color':['red','orange','green','orange','green','yellow']})
预期结果:
df1 = pd.DataFrame({'type':['Apple3','Pear28','Banana0','Lime46'],'ind':['1','5','NaN','2'],'color':['orange','yellow','NaN','green']})
我感谢所有的意见,提前致谢。
答:
1赞
Suraj Shourie
10/19/2023
#1
您需要合并两个数据集,并从第二个数据集中删除重复项:
df1 = df1.merge(df2.reset_index().drop_duplicates(['type', 'color']), how='left')
print(df1)
输出:
type index color
0 Apple3 1.0 orange
1 Pear28 5.0 yellow
2 Banana0 NaN NaN
3 Lime46 2.0 green
上一个:重命名并运行基于列关键字的计算
评论