gpt4 book ai didi

python pandas dataframe 将列重命名为多索引列

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:59 25 4
gpt4 key购买 nike

我有以下数据框

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.random((4,4)))

df
Out[5]:
0 1 2 3
0 0.136122 0.948477 0.173869 0.929373
1 0.194699 0.759875 0.723993 0.497966
2 0.323100 0.443267 0.210721 0.681426
3 0.590853 0.710664 0.202502 0.950658

我还有一个列映射器:

mapping = {0: ('1', 'A'), 1: ('1', 'B'), 2: ('2', 'A'), 3: ('2', 'B')}

有没有办法使用映射df中的列重命名为下面的?即直接通过映射将列更改为多索引。

          1                   2          
A B A B
0 0.136122 0.948477 0.173869 0.929373
1 0.194699 0.759875 0.723993 0.497966
2 0.323100 0.443267 0.210721 0.681426
3 0.590853 0.710664 0.202502 0.950658

ps,我知道我可以简单地做下面的事情,

df.columns = pd.MultiIndex.from_product([['1','2'],['A','B']])

最佳答案

使用Index.map , 如果可以使用 pandas 0.23+ 省略 .get:

df.columns = df.columns.map(mapping.get)
print (df)
1 2
A B A B
0 0.696469 0.286139 0.226851 0.551315
1 0.719469 0.423106 0.980764 0.684830
2 0.480932 0.392118 0.343178 0.729050
3 0.438572 0.059678 0.398044 0.737995

重命名的另一种解决方案,但在下一步中必须转换为MultiIndex:

关于python pandas dataframe 将列重命名为多索引列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59262242/

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