【发布时间】:2017-01-03 05:45:39
【问题描述】:
为什么是这个代码
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)
但是在这里我需要做两次 groupby,第一次是在排序之前,然后是在排序之后选择前 3 个值。我想先排序,然后分组,然后为每个组选择 3 个。
csv文件可以找到here
谢谢!
【问题讨论】: