我有一个由pdblp
模块为python创建的数据帧。df包含以日期为索引的价格数据,看起来像一个多索引/两层列(ticker和'PX_LAST')。为了以更简单的方式处理数据,我想去掉子标题“PX_LAST”(我不需要它,它会扰乱我单独执行的一些查找函数)。在
以下是数据帧的外观:
df_px_orig.columns
Out[60]:
MultiIndex(levels=[['IKH16 Comdty', 'IKM16 Comdty', 'IKU16 Comdty', 'RXH16 Comdty', 'RXM16 Comdty', 'RXU16 Comdty'], ['PX_LAST']],
labels=[[3, 4, 5, 0, 1, 2], [0, 0, 0, 0, 0, 0]],
names=['ticker', 'field'])
df_px_orig.head()
Out[41]:
ticker RXH16 Comdty RXM16 Comdty RXU16 Comdty IKH16 Comdty IKM16 Comdty \
field PX_LAST PX_LAST PX_LAST PX_LAST PX_LAST
date
2016-01-04 158.79 156.26 155.15 138.28 136.76
2016-01-05 159.05 156.52 155.42 138.73 137.21
2016-01-06 159.69 157.15 156.04 139.01 137.49
2016-01-07 159.18 156.62 155.53 138.18 136.66
2016-01-08 159.66 157.11 155.98 138.53 137.01
ticker IKU16 Comdty
field PX_LAST
date
2016-01-04 136.76
2016-01-05 137.21
2016-01-06 137.49
2016-01-07 136.66
2016-01-08 137.01
我的问题是建议的方法:
在这里使用列.map():{Pandas: combining header rows of a multiIndex DataFrame}
在这里使用columns.droplevel列():{Delete second row of header in PANDAS}
这两种方法的结果都是一样的-似乎要删除所有数据,而我剩下的新对象只是一个索引:
^{pr2}$也许我完全误解了这个数据帧的结构,应该使用其他方法,希望能得到帮助。明确地说,我的目标是简单地去掉“PX_LAST”级别,并保持其他所有内容不变。在
非常感谢
编辑:从用于构建数据帧的插件的源代码中添加一些代码:{https://github.com/matthewgilbert/pdblp/blob/master/pdblp/pdblp.py}
^{3}$
目前没有回答
相关问题 更多 >
编程相关推荐