我正在尝试对数据帧中的数字列进行排序,但是得到此错误的“ id”列具有特定站点的ID计数。例如2272、2202、1855等
df.sort_values(by=['id'])
但是,我遇到此错误:
'无法访问'DataFrameGroupBy'的可调用属性'sort_values' 对象,请尝试使用“应用”方法
答案 0 :(得分:7)
您正试图从DataFrame
对象调用GroupBy
方法。如果您的目标是在每个组中进行排序,则只需在by
中传递多个键:
以df
作为数据帧,而不是groupby对象...
df.sort_values(by=['groupby_key1', 'groupby_key2', '...', 'id'])
如果要在分组依据中进行排序,请按照错误消息的建议进行操作,并使用apply
(将df
作为 dataframe 而不是groupby对象):
gb = df.groupby(['gropuby_key1', 'groupby_key2', '...'])
gb.apply(lambda _df: _df.sort_values(by=['id'])