我对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))
在这里感谢任何帮助
答案 0 :(得分:0)
您的错误是由在您执行[0]
的行末的groupby
引起的。您没有发布完整的错误消息,但我敢打赌您有一个KeyError: 0
。这是由于您的索引中不再包含0
。如果您查看在DataFrame
之后创建的groupby
,您会发现现在有了一个层次索引,该索引是根据column1
和column2
的唯一值组合创建的
快速解决方案?将[0]
替换为.iloc[0]
,以使该行位于零索引位置。
output = df.groupby(['column1','column2']).count().sort_values(by=['column1','column2'], axis = 0).iloc[0]
或使用.head(1)
获取DataFrame
的第一行。