2017-05-13 75 views
1

我需要按記錄爲字符串的日期對我的數據框進行排序,所以當我繪製我的值時,日期按順序繪製。我按日期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不是「日期」,這令我費解。

感謝您的幫助。

enter image description hereenter image description here

回答

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

+0

完成! :) 謝謝。 – aviss

+0

嗨!我希望你能在我的情節中進一步幫助我。現在我添加註釋時出現問題。我得到這個錯誤:'ValueError:無效文字爲float():10_May'試圖訪問索引時:'plt.annotate('Peak', (grouped.index [9],grouped ['L'] [9] ), xytext =(15,15), textcoords ='偏移點', arrowprops = dict(arrowstyle =' - |>'))'我以爲設置索引'to_datetime'然後'strftime'解決了問題,但大熊貓仍然認爲它是一個浮動... – aviss

+0

什麼返回'grouped.index [9]'和什麼'grouped.index ['L'] [9]'?其次看起來有點奇怪。 – jezrael