我正嘗試使用熊貓0.13.0(和numpy 1.8.0)讀取最初無序的數據。例如,示例數據如下所示:如何使用Pandas讀取無序數據並對其進行排序?
date_time, weeks, score
9/16/2013 14:05:00,73,160.9358
10/4/2013 13:20:00,75,159.61304
10/20/2013 13:44:00,78,158.06982
11/9/2013 17:18:00,80,156.30614
12/17/2013 14:20:00,86,158.5123664
9/19/2012 14:18:00,21,155.20384
7/7/2012 14:08:00,10,165.56546
7/11/2012 12:23:00,11,162.0381
7/14/2012 11:30:00,11,162.25856
7/17/2012 14:15:00,12,160.71534
請注意,日期無法正常工作,日後的日期和週數第一次。
當我在這個數據的讀取,熊貓保持原來的順序:
In [9]: df=pd.read_csv('2_decimated.csv')
In [10]: df
Out[10]:
date_time weeks score
0 2013-09-16 14:05:00 73 160.935800
1 2013-10-04 13:20:00 75 159.613040
2 2013-10-20 13:44:00 78 158.069820
3 2013-11-09 17:18:00 80 156.306140
4 2013-12-17 14:20:00 86 158.512366
5 2012-09-19 14:18:00 21 155.203840
6 2012-07-07 14:08:00 10 165.565460
7 2012-07-11 12:23:00 11 162.038100
8 2012-07-14 11:30:00 11 162.258560
9 2012-07-17 14:15:00 12 160.715340
當我打電話df.sort(columns='date_time', inplace=True)
,我得到:
date_time weeks score
6 2012-07-07 14:08:00 10 165.565460
7 2012-07-11 12:23:00 11 162.038100
8 2012-07-14 11:30:00 11 162.258560
9 2012-07-17 14:15:00 12 160.715340
5 2012-09-19 14:18:00 21 155.203840
0 2013-09-16 14:05:00 73 160.935800
1 2013-10-04 13:20:00 75 159.613040
2 2013-10-20 13:44:00 78 158.069820
3 2013-11-09 17:18:00 80 156.306140
4 2013-12-17 14:20:00 86 158.512366
這是接近我想要的,但我想date_time作爲索引,所以這可以是時間序列數據。調用df2.set_index('date_time')
似乎做我想做的,就是
weeks score
date_time
2012-07-07 14:08:00 10 165.565460
2012-07-11 12:23:00 11 162.038100
2012-07-14 11:30:00 11 162.258560
2012-07-17 14:15:00 12 160.715340
2012-09-19 14:18:00 21 155.203840
2013-09-16 14:05:00 73 160.935800
2013-10-04 13:20:00 75 159.613040
2013-10-20 13:44:00 78 158.069820
2013-11-09 17:18:00 80 156.306140
2013-12-17 14:20:00 86 158.512366
但隨後調用df.plot()
顯示了相同的情節和以前一樣,然後當我再次調用df,可以研究它,DF已經記不清了新的指數,並返回到它的整數索引。基本上,似乎set_index函數不像我所期望的那樣運行。
我不推薦將'DataFrame作爲df'導入,因爲'df'通常用作DataFrame對象的名稱。 – joris