猿问

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

我有一个这样的数据框:


    X         Y

    a    b    a    b

0   1    3    4    2

1   5    7    8    6

我想重命名一个特定的列名,例如“Y”标题下的“b”到“b1”。想要的结果是


    X         Y

    a    b    a    b1

0   1    3    4    2

1   5    7    8    6

所以重要的是,“X”下的标题“b”保持不变。这意味着我不能只是使用rename


杨魅力
浏览 196回答 2
2回答

慕运维8079593

我找不到可以直接这样做的函数df.columns=df.columns.valuesdfOut[110]:    (X, a)  (X, b)  (Y, a)  (Y, b)0       1       3       4       21       5       7       8       6df.rename(columns={('Y', 'b'):('Y', 'b1')})Out[111]:    (X, a)  (X, b)  (Y, a)  (Y, b1)0       1       3       4        21       5       7       8        6df=df.rename(columns={('Y', 'b'):('Y', 'b1')})df.columns=pd.MultiIndex.from_tuples(df.columns)dfOut[114]:    X     Y      a  b  a b10  1  3  4  21  5  7  8  6

呼如林

或者,你可以这样做:# Find index of column to change.i = df.columns.get_loc(('Y','b'))# Rename the column.cols = df.columns.valuescols[i] = ('Y','b1')df.columns = pd.MultiIndex.from_tuples(cols)还是不是很方便。
随时随地看视频慕课网APP

相关分类

Python
我要回答