gpt4 book ai didi

python - 在一列中转换列名多索引

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:30 24 4
gpt4 key购买 nike

我有这个数据框

dt = pd.DataFrame({'At': ['A','B','C'], 
'R': ['27,0', '27,0', '27,0'],
'V1': [0,0,0],
'V2': [100,32,72], 'V3':[31,12,3]})

At R V1 V2 V3
0 A 27,0 0 100 31
1 B 27,0 0 32 12
2 C 27,0 0 72 3

然后我做了一个数据透视表

dt.pivot_table(index='At', columns='R', 
values=['V1','V2','V3']).reset_index()
At V1 V2 V3
R 27,0 27,0 27,0
0 A 0 100 31
1 B 0 32 12
2 C 0 72 3

我想像这样连接我的多索引列名称

  At   27,0_V1   27,0_V2   27,0_V3
0 A 0 100 31
1 B 0 32 12
2 C 0 72 3

这只是一个示例,我有不止一个级别

谢谢

最佳答案

稍微处理标题;使用 swaplevel + MultiIndex.map:

v = dt.pivot_table(index='At', columns='R', 
values=['V1','V2','V3']).reset_index()

v.columns = v.columns.swaplevel().map('_'.join).str.strip('_')

或者,正如 Scott Boston 所建议的,

v.columns = v.columns.map('{0[1]}_{0[0]}'.format).str.strip('_')

v
At 27,0_V1 27,0_V2 27,0_V3
0 A 0 100 31
1 B 0 32 12
2 C 0 72 3

关于python - 在一列中转换列名多索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50159175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com