我有一个类似这样的数据框:
df = pd.DataFrame({'Source1': ['Corona,Corona,Corona','Sars,Sars','Corona,Sars',
'Sars,Corona','Sars'],
'Area': ['A,A,A,B','A','A,B,B,C','C,C,B,C','A,B,C']})
df
Source1 Area
0 Corona,Corona,Corona A,A,A,B
1 Sars,Sars A
2 Corona,Sars A,B,B,C
3 Sars,Corona C,C,B,C
4 Sars A,B,C
我想要检查每一列中的每个单元格(实际数据有多列),并找出每个唯一单词的频率(我们可以通过“,”来区分唯一单词),然后用出现最频繁的单词替换整个条目。
如果存在并列情况,则替换哪个单词并不重要。因此,期望的输出应如下所示:
df
Source Area
0 Corona A
1 Sars A
2 Corona B
3 Sars C
4 Sars A
在这种情况下,当存在平局时,我随机选择第一个单词,但这并不重要。
提前致谢。
df['Source1'] = df['Source1'].str.split(',', expand=True).mode(axis=1).iloc[:, 0]
吗?df['Source1'] = df['Source1'].str.split(',').str[0]
只会返回第一个单词而不是最常见的那个。 - Phillyclause89