首页 > 解决方案 > 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 列进行子集化而不将其转换为布尔值,然后能够将其放入我的函数中。

标签: pythonpandasdataframesubset

解决方案


如果没有您的数据结构示例,我无法轻易提供示例,但我认为您正在寻找的是pd.groupby()按年份对所有内容进行分组,并pd.Series.mode找到最常见的组合,或者实际上可能.max()是您正在尝试在Word Count列中找到最大的数字。它可能看起来像:

df.groupby('Positive').max()

推荐阅读