从panda dataframe中按conu提取最频繁的2列组合

2024-04-27 02:33:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python编程比较陌生。。我有一个数据帧,df-我需要从中提取两个列的组合,这两个列的出现次数最多

我遵循下面的思考过程 -按请求的2列对数据帧进行分组 -对属于每个分组的行(因此使用axis=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))

谢谢你的帮助


Tags: 数据keyinselfdfgetreturn编程
1条回答
网友
1楼 · 发布于 2024-04-27 02:33:23

您的错误是由行末尾的[0]引起的,您在该行中执行groupby。您没有发布完整的错误消息,但我敢打赌您有一个KeyError: 0。这是因为索引中不再有0。如果您查看在groupby之后创建的DataFrame,您将看到现在有一个层次索引,它是由column1column2的唯一值组合创建的。你知道吗

快速解决方案?将[0]替换为.iloc[0],以获取零索引位置中的行。你知道吗

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

或者使用.head(1),获取DataFrame的顶行。你知道吗

相关问题 更多 >