Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:(“sort”u values()在索引SUMLEV';处获取了参数轴的多个值)_Python_Pandas - Fatal编程技术网

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)