我尝试过一系列方法,例如面板,排序,set_index,unstack,reindex。大熊猫的工作流程是什么?
如果我走下面板路径;我得到一个非唯一索引错误。
如果我尝试set_index,则取消堆叠...... - >我得到了一个级别错误。
我有这样的数据:
Out[6]:
time item value
2012-11-25 14:00:00 -0500 A 12
2012-11-25 19:00:00 -0500 A 22
2012-11-26 03:00:00 -0500 A 24
2012-11-19 06:00:00 -0500 A 26
2012-11-19 12:00:00 -0500 A 28
2012-11-23 17:00:00 -0500 B 12
2012-11-24 07:00:00 -0500 B 7
2012-11-16 23:00:00 -0500 B 1
2012-11-20 03:00:00 -0500 B 18
2012-11-21 15:00:00 -0500 B 16
我首先通过read_csv导入数据帧,然后按subject_id设置索引。
pt = pd.read_csv("./somepath/all.csv", encoding='latin1', names=hdr, sep=',' , index_col='subject_id', parse_dates=True)
我尝试添加format='/%Y/%m/%d /%H/%M/%S'
参数,因为它没有按日期正确排序;但不知怎的,它开始工作,格式参数变得无法识别(在ipython中使用pandas ......?)
接下来,我尝试编写一个自定义类来按时间范围对itemid进行分组,但发现只是按时间排序工作以重新排序列。 (只要时间格式正确完成,对于为什么不起作用仍然有点模糊......)
pt.sort('time', ascending=True, inplace=True)
(继承人由subject_id索引的数据)
time item value
subject_id
18 2007-11-22 08:17:00 -0500 646 94.0
18 2007-11-22 09:41:00 -0500 211 76.0
18 2007-11-22 09:41:00 -0500 455 89.0
18 2007-11-22 09:41:00 -0500 646 97.0
18 2007-11-22 10:55:00 -0500 211 76.0
18 2007-11-22 10:55:00 -0500 455 87.0
18 2007-11-22 10:55:00 -0500 646 97.0
18 2007-11-22 11:30:00 -0500 211 71.0
18 2007-11-22 11:30:00 -0500 455 81.0
18 2007-11-22 11:30:00 -0500 646 96.0
现在,我希望itemids为列
AttributeError: 'Int64Index' object has no attribute 'levels'
。 pt.set_index('item', inplace=True)
pt['value'].unstack('itemid')
pt[['time','item','value']][:10]
KeyError: u'no item named itemid'
panel = pt.set_index(['item']).sortlevel(0).to_panel()
panel= pt.stack('time')
panel[-10:]
- 真正感谢任何帮助。