为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas-根据一级头的名称重命名数据帧多级头

Pandas-根据一级头的名称重命名数据帧多级头

杨魅力 2021-11-09 10:46:46
我有一个这样的数据框:    X         Y    a    b    a    b0   1    3    4    21   5    7    8    6我想重命名一个特定的列名,例如“Y”标题下的“b”到“b1”。想要的结果是    X         Y    a    b    a    b10   1    3    4    21   5    7    8    6所以重要的是,“X”下的标题“b”保持不变。这意味着我不能只是使用rename
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

我找不到可以直接这样做的函数


df.columns=df.columns.values

df

Out[110]: 

   (X, a)  (X, b)  (Y, a)  (Y, b)

0       1       3       4       2

1       5       7       8       6

df.rename(columns={('Y', 'b'):('Y', 'b1')})

Out[111]: 

   (X, a)  (X, b)  (Y, a)  (Y, b1)

0       1       3       4        2

1       5       7       8        6

df=df.rename(columns={('Y', 'b'):('Y', 'b1')})

df.columns=pd.MultiIndex.from_tuples(df.columns)

df

Out[114]: 

   X     Y   

   a  b  a b1

0  1  3  4  2

1  5  7  8  6


查看完整回答
反对 回复 2021-11-09
?
呼如林

TA贡献1798条经验 获得超3个赞

或者,你可以这样做:


# Find index of column to change.

i = df.columns.get_loc(('Y','b'))

# Rename the column.

cols = df.columns.values

cols[i] = ('Y','b1')

df.columns = pd.MultiIndex.from_tuples(cols)

还是不是很方便。


查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信