我有两个字数数据框,假设第一个是...
word count
0 HELLO 8
1 MORE 10
2 HELP 19
3 NO 100
第二个是...
word count
0 HELLO 10
1 MORE 12
2 NONE 20
3 NO 56
结果应该是...
word count
0 HELLO 18
1 MORE 22
2 HELP 19
2 NONE 20
3 NO 156
顺序无关紧要。但我必须确保保留所有单词。如果两个数据帧中都存在该词,则我们将计数相加。如果另一个不存在,我们只需添加它即可。
我想出了如何添加两个数据框...
df_add = df1.add(df2, fill_value=0)
但这就是我所知道的。任何帮助表示赞赏。
答案 0 :(得分:3)
您可以合并数据框和求和,
new_df = df1.merge(df2, on = 'word', how = 'outer')
new_df['count'] = new_df[['count_x', 'count_y']].sum(1)
new_df.drop(['count_x', 'count_y'], 1, inplace = True)
word count
0 HELLO 18.0
1 MORE 22.0
2 HELP 19.0
3 NO 156.0
4 NONE 20.0
答案 1 :(得分:1)
您可以一起使用以下pandas.merge
这些数据帧。然后将两个count
列加起来,最后使用fillna
填充NaN
df3 = pd.merge(df1, df2, on='word', how='outer', suffixes=['', '_2'])
df3['count'] = df3['count'].fillna(0) + df3['count_2'].fillna(0)
df3['count'].fillna(df3['count_2'], inplace=True)
df3.drop('count_2', axis=1, inplace=True)
print(df3)
word count
0 HELLO 18.0
1 MORE 22.0
2 HELP 19.0
3 NO 156.0
4 NONE 20.0
答案 2 :(得分:1)
您还可以使用append和groupby来使用此衬纸获得结果-
df_1.append(df_2).groupby('word', as_index=False).sum()