在pandas中将多级索引的数据框拆分为多个单级索引的数据框

4

我有一个描述股票运动情况(OHLC)的多级数据帧。索引是 datesymbol。数据帧如下所示:

                             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

任何指引正确方向的建议将不胜感激。
1个回答

3

最简单的方法是使用xs

print (df.xs('4338', level=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”。 - Abdul
也许需要将 dfs['4338'] 更改为 dfs[4338] - 如果值是数字,而不是字符串。 - jezrael
非常感谢您拓展了您的回答,现在这个运作得非常完美。 - Abdul
我再次更改答案,使用最简单的解决方案 ;) - jezrael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接