从列名称列表中进行切片,然后通过将其他列表分配为这些列中的名称来重命名它们

时间:2019-07-13 07:39:28

标签: python pandas

所以我试图从数据框中切出一个列名来重命名它们,但是似乎不起作用。

我尝试做的是以下事情:

rename_list = ['a', 'b', 'c', 'd', 'e']

df.columns[9:14] = rename_list

这似乎不起作用,并返回以下错误:TypeError: Index does not support mutable operations

但是,通过列表重命名列而不拼接列名称似乎可以正常工作。

例如,如果我想重命名df2(一个只有5列的新数据框),则可以使用以下功能:

rename_list = ['a', 'b', 'c', 'd', 'e']

df2.columns = rename_list

另一种选择当然是制作字典并使用df.rename(),我只是想知道是否有任何方法可以通过简单地切片所需的列名来完成上述建议。

1 个答案:

答案 0 :(得分:1)

您可以创建列表或一维数组并通过切片进行更改,然后分配回来:

cols = df.columns.tolist()
#pandas 0.24+
cols = df.columns.to_numpy()
#pandas below
#cols = df.columns.values

cols[9:15] = rename_list
df.columns = cols

还可以分配给下划线1d数组,但是在过去的pandas版本中存在奇怪的错误,因此不建议:

df.columns.values[9:15] = rename_list