比较具有相同值的数据帧
Comparing dataframes for same values
我已经从 csv 文件生成了 2 个数据帧:
- 一个包含一列单词和一列它们在文章中的出现(在 df 中保存为类型:object
- 一个包含与上面相同但有不同的词和这些词的不同出现(一些词在两个 df 中列出)
以下是 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?
提前致谢
以数据帧 first
和 second
为例。
先
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
我已经从 csv 文件生成了 2 个数据帧:
- 一个包含一列单词和一列它们在文章中的出现(在 df 中保存为类型:object
- 一个包含与上面相同但有不同的词和这些词的不同出现(一些词在两个 df 中列出)
以下是 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?
提前致谢
以数据帧 first
和 second
为例。
先
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