python - Python 条件语句
问题描述
假设我有 3 列。它们是“Word”、“Word Count”和“Positive”。“阳性”列按年份分类。我需要找到按“积极”分类的最常见的词。当我使用此代码时:
df.sort_values(by=['Positive', 'Word Count', 'Word'], ascending=False, axis=0).head(5)[['Word', 'Word Count', 'Positive']]
它给了我这个输出:
Word Word Count Positive
BEST 2654899 2012
INNOVATIVENESS 541 2011
EFFECTIVE 16420419 2009
BENEFIT 9902500 2009
ABLE 4090099 2009
如您所见,它考虑了字数统计之前的年份。如果我切换它们,那么我只会得到最常见的单词。我对此的解决方案是通过仅考虑值> = 0然后按字数排序来对“正”列进行子集化。我的问题是能够对 Positive 列进行子集化而不将其转换为布尔值,然后能够将其放入我的函数中。
解决方案
如果没有您的数据结构示例,我无法轻易提供示例,但我认为您正在寻找的是pd.groupby()
按年份对所有内容进行分组,并pd.Series.mode
找到最常见的组合,或者实际上可能.max()
是您正在尝试在Word Count
列中找到最大的数字。它可能看起来像:
df.groupby('Positive').max()
推荐阅读
- sql - 连接三个表。两个相关,一个与另外两个无关
- excel - 如何在 Excel 2016/2019 for Mac 上将 Application.OnKey 用于 Command-X?
- postgresql - 一列的值不能包含在另一列中,反之亦然
- php - 如何在 PHP 中解析/提取字符串?特别是引号之间的东西
- android - 底部 OnClickListener 始终未解决
- r - 错误:包“gifski”的配置失败
- vbscript - 在连接字符串中包含括号会引发“未终止的字符串常量”
- javascript - 在 Javascript 中进行计算时如何显示输出?
- java - 为什么 java 8 lambda 表达式使用函数变量而不是内联工作的任何解释
- python - GAE/P:API 调用的交易安全