将多级多索引名称转换为DataFrame列,Python 3.6

2024-04-25 17:07:22 发布

您现在位置:Python中文网/ 问答频道 /正文

Data.columns(数据列):

MultiIndex(levels=[['PDARS1M', 'PDARS1Y', 'PDKRW1M'], ['EB', 'EO', 'ER']],
       labels=[[2, 0, 1, 2, 0, 1, 2, 0, 1], [0, 0, 0, 2, 2, 2, 1, 1, 1]],
       names=['Instrument', 'Field'])

数据:

PDKRW1M PDARS1M PDARS1Y PDKRW1M PDARS1M PDARS1Y PDKRW1M PDARS1M PDARS1Y
EB  EB  EB  ER  ER  ER  EO  EO  EO
1125    40  53  1126    40  53  1127    40  54
1125    41  54  1126    41  54  1127    41  55
1126    41  54  1127    41  54  1128    41  55

我想合并Data.columns.levels[0]Data.columns.levels[1]并更新为Data.columns

我用下面的脚本,但有错误

Data.columns = Data.columns.levels[0] + '|' + Data.columns.levels[1]

"ValueError: Length mismatch: Expected axis has 9 elements, new values have 3 elements"

需要数据列名:

PDKRW1M|EB, PDARS1M|EB, PDARS1Y|EB, PDKRW1M|ER, PDARS1M|ER, PDARS1Y|ER, PDKRW1M|EO, PDARS1M|EO, PDARS1Y|EO

Tags: columns数据datalabelsnameselementseolevels