pandas - 如何将 counter 和 most_common 应用于每行的数据框列
问题描述
如标题所示,我想为列内的每个值找到前 100 个单词。
我希望能够在数据框中的列的每一行中看到前 100 个单词(最高频率)。所以从技术上讲,每一行的频率与其他行是分开的。
我想以下面示例的形式抓取:
[('http', 1059), ('coronaviru', 454), ('covid', 430), ('peopl', 120), ('time', 71), ('home', 67), ( 'amp', 58), ('stay', 55), ('day', 52), ('work', 52), ('pandem', 48), ('die', 44), ('countri ', 42)]
如果将其保存在数据框中,那就太好了,但在列表列表中也可以
解决方案
value_counts
如果我正确理解了这个问题,我认为您正在寻找sort = True
下面的一个例子:
df = pd.DataFrame({'col' : [['a','a','b','b','b','c'], ['d','d','e','e','f']]})
df
col
0 [a, a, b, b, b, c]
1 [d, d, e, e, f]
df_dict = pd.DataFrame({'freq':df['col'].apply(lambda l : list(pd.Series(l).value_counts(sort = True).to_dict().items()))})
给出:
df_dict
freq
0 [(b, 3), (a, 2), (c, 1)]
1 [(d, 2), (e, 2), (f, 1)]
推荐阅读
- python - 熊猫丢弃差异未达到阈值的行
- owin - 如何通过 IAppBuilder 配置 OWIN Web API 1
- authentication - Wildfly 17 Elytron:使用 EAR 类进行服务器端身份验证
- python - 使用python中的集合替换文本文件中的单词/短语时出现问题?
- matlab - datenum 和矩阵列字符串转换
- javascript - 当 await 挂起一个异步函数时会发生什么?
- php - Wordpress XML-RPC - 编辑帖子
- python-3.x - 为什么我看不到 Jupyter notebook 中的所有列?
- python-3.x - ValueError:方案 https 在 websocket 客户端打招呼中无效
- javascript - 总结许多连续 if(x typeof !=='unedfined') 查询的最佳方法?