仅重命名pandas数据框中的最后一列(说明重复的标题)

时间:2019-06-06 14:37:26

标签: python pandas dataframe

我只需要重命名 我数据框中的最后一列,问题是有很多同名列(这是有原因的),因此我无法在线使用其他示例中的代码。有没有一种方法可以使用仅隔离最后一列的特定内容?

我试图做这样的事情 df.rename(columns={df.columns[-1]: 'Test'}, inplace=True)

但是,这意味着所有具有相同标题的列都更改为“测试”,而我只希望最后一个更改。

我有点需要df.columns[-1] = 'Test'之类的东西,但这不起作用。

1 个答案:

答案 0 :(得分:5)

您始终可以明确地重新分配。

df.columns = [*df.columns[:-1], 'Test']

或者,如果要进行方法链接,请以相同的方式使用set_axis

df.set_axis([*df.columns[:-1], 'Test'], axis=1, inplace=False)

最小代码示例

df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=list('ABA'))
df

   A  B  A
0  1  2  3
1  4  5  6
2  7  8  9

df.rename({df.columns[-1]: 'C'}, axis=1) # wrong

   C  B  C
0  1  2  3
1  4  5  6
2  7  8  9

df.set_axis([*df.columns[:-1], 'Test'], axis=1, inplace=False)

   A  B  Test
0  1  2     3
1  4  5     6
2  7  8     9