【问题标题】:'Cannot access callable attribute 'sort_values' of 'DataFrameGroupBy' objects, try using the 'apply' method''无法访问'DataFrameGroupBy'对象的可调用属性'sort_values',请尝试使用'apply'方法'
【发布时间】:2019-01-17 10:12:53
【问题描述】:
我正在尝试对数据框中的数字列进行排序,但收到此错误“id”列在特定站点有 id 计数。例如2272、2202、1855等
df.sort_values(by=['id'])
但是,我收到此错误:
'无法访问'DataFrameGroupBy'的可调用属性'sort_values'
对象,尝试使用 'apply' 方法'
【问题讨论】:
标签:
python
python-3.x
pandas
numpy
group-by
【解决方案1】:
您正在尝试从 GroupBy 对象调用 DataFrame 方法。如果您的目标是在每个组中排序,您可以简单地在by 中传递多个键:
df 作为 数据框 而不是 groupby 对象...
df.sort_values(by=['groupby_key1', 'groupby_key2', '...', 'id'])
如果您想在分组内排序,请按照错误消息的建议进行操作并使用apply(df 作为 数据框,而不是 groupby 对象):
gb = df.groupby(['gropuby_key1', 'groupby_key2', '...'])
gb.apply(lambda _df: _df.sort_values(by=['id'])