在pandas中分组后按新索引对数据帧进行排序

时间:2017-05-13 16:49:57

标签: python-2.7 pandas

我需要按记录为字符串的日期对数据框进行排序,因此当我绘制值时,日期按顺序绘制。我按日期grouped = datanew.groupby(['Date']).sum()对其进行了分组,因此sort_values('Date')不起作用。我试过这个

grouped = datanew.sort_values(by='Date',ascending=False).groupby('Date').sum()

我也试过这个:

date = sort.reset_index()
sortd = date.sort_values(by='Date', ascending=False)

但是在这种情况下,它按索引排序我的df而不是'Date'让我困惑。

非常感谢您的帮助。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

我认为您可以使用to_datetime + sort_index + strftime + plot

df.index = pd.to_datetime(df.index, format='%d_%b')
df = df.sort_index()
df.index = df.index.strftime('%d_%b')
df.plot()

样品:

np.random.seed(10)
df = pd.DataFrame({'a':[3,5,6,1]}, index=['11_May','12_May','1_May', '2_May'])
print (df)
        a
11_May  3
12_May  5
1_May   6
2_May   1

df.index = pd.to_datetime(df.index, format='%d_%b')
df = df.sort_index()
df.index = df.index.strftime('%d_%b')
print (df)
        a
01_May  6
02_May  1
11_May  3
12_May  5

df.plot()

graph