我正尝试使用熊猫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