所以我试图从数据框中切出一个列名来重命名它们,但是似乎不起作用。
我尝试做的是以下事情:
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()
,我只是想知道是否有任何方法可以通过简单地切片所需的列名来完成上述建议。
答案 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