按计数从熊猫数据框中提取2列的最频繁组合

时间:2019-05-28 01:14:01

标签: python pandas dataframe count pandas-groupby

我对Python编程相对较新。.我有一个数据框df-我需要从中提取出现次数最多的2列的组合

我遵循以下思考过程 -按要求的2列对数据框进行了分组 -对属于每个分组的行(因此使用的轴= 0)进行计数 -根据每个唯一组/组合提取的行数,我尝试对这些行进行排序

下面的代码

output = df.groupby(['column1','column2']).count().sort_values(by=['column1','column2'], axis = 0)[0]

Getting some error like this:
in get_loc return self._engine.get_loc(key)

resulting into this exception:
in get_loc return self._engine.get_loc(self._maybe_cast_indexer(key))

在这里感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您的错误是由在您执行[0]的行末的groupby引起的。您没有发布完整的错误消息,但我敢打赌您有一个KeyError: 0。这是由于您的索引中不再包含0。如果您查看在DataFrame之后创建的groupby,您会发现现在有了一个层次索引,该索引是根据column1column2的唯一值组合创建的

快速解决方案?将[0]替换为.iloc[0],以使该行位于零索引位置。

output = df.groupby(['column1','column2']).count().sort_values(by=['column1','column2'], axis = 0).iloc[0]

或使用.head(1)获取DataFrame的第一行。