如何比对两个DataFrame的相同单词并求和对应出现次数
两个单词统计DataFrame的重叠项次数合并方案
假设你的两个DataFrame分别命名为df1(待更新的第一个数据集)、df2(第二个待合并的数据集),首先需要注意:你提到两列的数据类型均为object,因此要先将occurance列转换为数值类型才能执行加法运算。
场景1:需要将df2中独有的单词也补充到df1中
直接拼接两个数据集后按单词分组求和即可,代码如下:
import pandas as pd # 将出现次数字段转换为整型 df1['occurance'] = df1['occurance'].astype(int) df2['occurance'] = df2['occurance'].astype(int) # 合并后按单词分组求和,结果覆盖原df1 df1 = pd.concat([df1, df2], ignore_index=True).groupby('word', as_index=False)['occurance'].sum()
场景2:仅更新df1已有单词的次数,不新增df2独有的单词
用映射匹配的方式更新次数即可,不会新增df1中不存在的行:
import pandas as pd # 将出现次数字段转换为整型 df1['occurance'] = df1['occurance'].astype(int) df2['occurance'] = df2['occurance'].astype(int) # 匹配df2的单词次数,无匹配项填充0后相加 df1['occurance'] = df1['occurance'] + df1['word'].map(df2.set_index('word')['occurance']).fillna(0).astype(int)
内容的提问来源于stack exchange,提问作者Robin5454
相关产品推荐
相关产品推荐

