Python 在pandas中将多索引数据帧分离为多个单索引数据帧
我有一个描述股票运动的多指数数据框架(OHLC)。索引为Python 在pandas中将多索引数据帧分离为多个单索引数据帧,python,pandas,numpy,Python,Pandas,Numpy,我有一个描述股票运动的多指数数据框架(OHLC)。索引为日期和符号。数据帧如下所示: open high low close volume date symbol 2017-12-03 07:00:00 4005 38.75 38.75 38.75 38.75 2518 2018-01-04 09:58:00 4333 12.06 12.06 12.06 12.06
日期
和符号
。数据帧如下所示:
open high low close volume
date symbol
2017-12-03 07:00:00 4005 38.75 38.75 38.75 38.75 2518
2018-01-04 09:58:00 4333 12.06 12.06 12.06 12.06 2000
2018-01-22 10:06:00 4338 9.22 9.22 9.22 9.22 10
2018-01-22 11:23:00 4338 9.22 9.22 9.22 9.22 1000
2017-12-14 08:41:00 4334 9.28 9.28 9.28 9.28 2
2018-01-02 10:19:00 4332 10.30 10.30 10.30 10.30 100
2018-01-09 08:56:00 4332 10.28 10.30 10.28 10.30 1500
In [1]: df.symbol('4338')
Out[1]:
open high low close volume
date
2018-01-22 10:06:00 9.22 9.22 9.22 9.22 10
2018-01-22 11:23:00 9.22 9.22 9.22 9.22 1000
有没有一种方法可以通过符号来分隔数据框,从而生成一个以日期为索引的索引数据框?大概是这样的:
open high low close volume
date symbol
2017-12-03 07:00:00 4005 38.75 38.75 38.75 38.75 2518
2018-01-04 09:58:00 4333 12.06 12.06 12.06 12.06 2000
2018-01-22 10:06:00 4338 9.22 9.22 9.22 9.22 10
2018-01-22 11:23:00 4338 9.22 9.22 9.22 9.22 1000
2017-12-14 08:41:00 4334 9.28 9.28 9.28 9.28 2
2018-01-02 10:19:00 4332 10.30 10.30 10.30 10.30 100
2018-01-09 08:56:00 4332 10.28 10.30 10.28 10.30 1500
In [1]: df.symbol('4338')
Out[1]:
open high low close volume
date
2018-01-22 10:06:00 9.22 9.22 9.22 9.22 10
2018-01-22 11:23:00 9.22 9.22 9.22 9.22 1000
任何正确方向的指导都将不胜感激。最简单的是使用:
如果值是数字,请使用:
print (df.xs(4338, level=1))
当我这样做时,我得到了
KeyError
。可能需要dfs['4338']
更改为dfs[4338]
-如果值是数值,而不是字符串。在扩展答案后,这项操作非常有效。谢谢我用最简单的解决方案再次更改答案;)