Python TypeError:(“sort”u values()在索引SUMLEV';处获取了参数轴的多个值)
为什么要使用此代码Python TypeError:(“sort”u values()在索引SUMLEV';处获取了参数轴的多个值),python,pandas,Python,Pandas,为什么要使用此代码 cdf = census_df[census_df['SUMLEV'] == 50] cdf = cdf.apply(lambda x:x.sort_values('CENSUS2010POP', axis=0, ascending=False)).reset_index(drop=True) cdf = cdf.groupby('STNAME').head(3) cdf.head(20) 给出以下错误 TypeError: ("sort_values() got mult
cdf = census_df[census_df['SUMLEV'] == 50]
cdf = cdf.apply(lambda x:x.sort_values('CENSUS2010POP', axis=0, ascending=False)).reset_index(drop=True)
cdf = cdf.groupby('STNAME').head(3)
cdf.head(20)
给出以下错误
TypeError: ("sort_values() got multiple values for argument 'axis'", 'occurred at index SUMLEV')
虽然这段代码运行良好
cdf = census_df[census_df['SUMLEV'] == 50]
cdf = cdf.groupby('STNAME')
cdf = cdf.apply(lambda x:x.sort_values('CENSUS2010POP', axis=0, ascending=False)).reset_index(drop=True)
cdf = cdf.groupby('STNAME').head(3)
cdf.head(20)
但在这里,我需要做两次分组,第一次是在排序之前,第二次是在排序之后,以选择前3个值。我想先排序,然后分组,然后为每个组选择3个
可以找到csv文件
谢谢 您需要更改行:
cdf = cdf.apply(lambda x:x.sort_values('CENSUS2010POP', axis=0, ascending=False)).reset_index(drop=True)
致:
将
.sort_values()
应用于数据框时,它将按您指定的列对所有列进行排序,即在本例中为CENSUS2010POP
。您不必对所有列应用排序。实际上,我遇到了一个错误:AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“sort\u values”,请尝试使用“apply”方法。在排序之前,我想您使用的是groupby
。您可以直接将sort_values()
应用于原始数据帧,而无需groupby。然后对数据帧进行分组。因为,数据帧将保持按分组后的排序。
cdf = cdf.sort_values('CENSUS2010POP', ascending=False).reset_index(drop=True)