Python 按返回值对数据帧进行排序;对于多索引,标签必须是元组,其元素对应于每个级别。”;
目标:基于具有5列的数据帧,返回具有3列的数据帧,其中一列是计数,并按最大计数到最小计数排序 我所尝试的:Python 按返回值对数据帧进行排序;对于多索引,标签必须是元组,其元素对应于每个级别。”;,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,目标:基于具有5列的数据帧,返回具有3列的数据帧,其中一列是计数,并按最大计数到最小计数排序 我所尝试的: df = df[['Country', 'Year','NumInstances']].groupby(['Country', 'Year']).agg(['count']) df = df.sort_values(by='NumInstances', ascending=False) print(df) 错误: ValueError:列标签“NumInstances”不唯一。 对于
df = df[['Country', 'Year','NumInstances']].groupby(['Country', 'Year']).agg(['count'])
df = df.sort_values(by='NumInstances', ascending=False)
print(df)
错误:
ValueError:列标签“NumInstances”不唯一。
对于多索引,标签必须是元组,其元素对应于每个级别
在这个标记作为副本之前,我已经看过了所有其他建议的副本,它们似乎都建议使用与上面相同的代码
我正在做的一些小事情是否可能是不正确的
谢谢 我想您需要删除多索引- 试试这个-
df = df[['Country', 'Year','NumInstances']].groupby(['Country', 'Year']).agg(['count']).reset_index()
或-
发现了问题。向NumInstances列添加agg使NumInstances列名称成为一个元组('NumInstances','sum'),因此我刚刚将排序代码更新为:
df = df.sort_values(by=('NumInstances', 'sum'), ascending=False)
谢谢,但这似乎只是按国家名称订购的
df = df.sort_values(by=('NumInstances', 'sum'), ascending=False)