比较具有相同值的数据帧

Comparing dataframes for same values

我已经从 csv 文件生成了 2 个数据帧:

以下是 df 的外观(两者构建相同):

              word  occurance
0            labor          4
1      predictions          2
2              nfl          2
3             kids          2
4           africa          2
5         pandemic          2
6             kara          2
7             days          2
8          swisher          2
9            event          2
10             day          2
11        football          2
12          office          2
13              us          2
14        politics          2
15           media          2
16        abortion          2
17         preview          2
18           music          2
19           texas          2
20           south          2
21         workers          2
22            anti          1
23         sanders          1
24        movement          1
25          bernie          1
26          budget          1

我如何检查第二个 df 中的单词是否也出现在第一个 df 中,如果匹配,则添加第一个和第二个 df 中的出现次数,以便在其中保存总分(出现次数)程序末尾的第一个df?

提前致谢

以数据帧 firstsecond 为例。

first = pd.DataFrame({"word": ["A", "B", "C", "D"], "occurrence": [1, 2, 3, 4]})
    word  occurrence
0      A           1
1      B           2
2      C           3
3      D           4

second = pd.DataFrame({"word": ["A", "B", "Y", "Z"], "occurrence": [6, 2, 4, 1]})
    word  occurrence
0      A           6
1      B           2
2      Y           4
3      Z           1

最终数据帧

因为只有 first 中出现的单词需要与 second 中出现的单词相加,所以使用左连接并计算出现次数的总和。

pd.merge(first, second, how="left", on=["word"]) \
    .set_index(["word"]) \
    .sum(axis=1).astype(int) \
    .reset_index(name="occurrence")
    word  occurrence
0      A           7
1      B           4
2      C           3
3      D           4