如何使用列表重命名 pandas 中的列
how to rename columns in pandas using a list
我有一个包含 44 列的数据框 (df),我想重命名列 2:44。我有一个长度为 42 的列表 (namesList),其中包含新的列名。然后我尝试使用列表重命名我的列:
df.columns[2:len(df.columns)] = namesList
但是我收到错误:
TypeError: Index does not support mutable operations
为什么会出现此错误?
您需要生成新的列名称 - 第一个和第二个值来自旧列,另一个来自 list
:
df.columns = df.columns[:2].tolist() + namesList
样本:
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'C':[7,8,9],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B C D E F
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
namesList = ['K','L','M','N']
df.columns = df.columns[:2].tolist() + namesList
print (df)
A B K L M N
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
我遇到过重命名前 N 列和后 N 列的问题。
根据您的需要替换 N 的值。
1) 重命名最后 N 列(忽略前 2 列)
cols_to_update = df.columns[:N].tolist() + ['col2_new','col3_new']
df.columns = cols_to_update
2) 重命名前 N 列(忽略后 N )
cols_to_update = ['col3_new','col4_new'] + df.columns[N:].tolist()
df.columns = cols_to_update
3) 重命名中间的列
cols_to_update = df.columns[:N].tolist() + ['col2_new','col3_new'] + df.columns[Y:].tolist()
df.columns = cols_to_update
4) 重命名所有列 - 确保您分配的列表与 df.columns.
的长度相同
list = ['col1_new','col2_new', 'col3_new','col4_new']
df.columns = list
您可以找到更多示例@ Multiple ways to Rename Columns in pandas
我有一个包含 44 列的数据框 (df),我想重命名列 2:44。我有一个长度为 42 的列表 (namesList),其中包含新的列名。然后我尝试使用列表重命名我的列:
df.columns[2:len(df.columns)] = namesList
但是我收到错误:
TypeError: Index does not support mutable operations
为什么会出现此错误?
您需要生成新的列名称 - 第一个和第二个值来自旧列,另一个来自 list
:
df.columns = df.columns[:2].tolist() + namesList
样本:
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6],
'C':[7,8,9],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B C D E F
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
namesList = ['K','L','M','N']
df.columns = df.columns[:2].tolist() + namesList
print (df)
A B K L M N
0 1 4 7 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
我遇到过重命名前 N 列和后 N 列的问题。 根据您的需要替换 N 的值。
1) 重命名最后 N 列(忽略前 2 列)
cols_to_update = df.columns[:N].tolist() + ['col2_new','col3_new']
df.columns = cols_to_update
2) 重命名前 N 列(忽略后 N )
cols_to_update = ['col3_new','col4_new'] + df.columns[N:].tolist()
df.columns = cols_to_update
3) 重命名中间的列
cols_to_update = df.columns[:N].tolist() + ['col2_new','col3_new'] + df.columns[Y:].tolist()
df.columns = cols_to_update
4) 重命名所有列 - 确保您分配的列表与 df.columns.
的长度相同list = ['col1_new','col2_new', 'col3_new','col4_new']
df.columns = list
您可以找到更多示例@ Multiple ways to Rename Columns in pandas