Pandas是否有内置函数实现指定的DataFrame列匹配赋值操作?
解决方案
用
map()方法就能实现你的需求,单行代码搞定,大数据量下效率和稳定性都比循环、merge更优:df2['empty_column'] = df2['comon_values_column'].map(df1.set_index('comon_values_column')['other_column'])逻辑说明:
- 先将df1以
comon_values_column为索引,提取other_column生成一个索引唯一的Series,这个Series的索引就是匹配键,值就是要填充的目标内容 - 调用df2中
comon_values_column的map()方法,自动将每个值对应的Series内容填充到empty_column,df2中的重复值会自动对应重复填充,完全等价于你写的循环逻辑 - 对比merge:merge会生成临时DataFrame,大数据量下内存开销大,还可能因为匹配逻辑产生意外的重复行;而map基于索引映射,行为更直观,内存效率更高
- 先将df1以
内容的提问来源于stack exchange,提问作者dimitris
相关产品推荐
相关产品推荐

