【发布时间】:2016-07-02 16:17:37
【问题描述】:
我有一个包含 ID、名称、日期时间和值的数据框。当我使用这个 DF 的 dtypes 时,我得到 p>
ID - int64
time - object
value - int
我想按 ID 对数据框进行分组,然后按时间顺序对行进行排序。我尝试了以下,
df['time'] = pd.to_datetime(df['time'])
p= df.groupby(['ID'])
然后我尝试了,
p.sort_values(['time'])
但出现错误,
AttributeError: Cannot access callable attribute 'sort_values' of 'DataFrameGroupBy' objects, try using the 'apply' method
然后我尝试了,
p['time'].apply(lambda x: x.sort_values())
这似乎仅适用于该列。我无法对所有列进行排序。我想在分组 ID 后根据时间变量对整个数据帧进行排序。我知道这可能我们很容易。但是试了很久没有结果。有人可以帮我做这件事吗?
【问题讨论】:
-
@jezrael 这个将 ID 作为单行,将行数作为列数,并丢失所有其他列。这是不正确的。
-
嗯,你是对的。也许帮助
print df.set_index('value').groupby(['ID']).apply(lambda x: x['time'].sort_values()).reset_index()
标签: python python-2.7 sorting pandas dataframe