我正在尝试使用iloc
和df.columns
函数重命名数据框中的选定列(例如两个las列),但它似乎对我不起作用,我无法确定搞清楚为什么。这是我想要实现的一个玩具示例:
import pandas as pd
d = {'one': list(range(5)),
'two': list(range(5)),
'three': list(range(5)),
'four': list(range(5)),
'five': ['a', 'b', 'c', 'd', 'e'],
'six': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(d)
df.iloc[:,-2:].columns = ['letter_1','letter_2']
df.columns
但我一直得到原始列的名称:
Index(['one', 'two', 'three', 'four', 'five', 'six'], dtype='object')
我想念什么?
答案 0 :(得分:1)
只需使用df.rename
:
import pandas as pd
d = {'one': list(range(5)),
'two': list(range(5)),
'three': list(range(5)),
'four': list(range(5)),
'five': ['a', 'b', 'c', 'd', 'e'],
'six': ['a', 'b', 'c', 'd', 'e']
}
new_names = ['letter_1', 'letter_2']
df = pd.DataFrame(d).rename(index=str, columns=dict(zip(list(d.keys())[-len(new_names):], new_names)))
print(df.columns)
输出:
索引(['letter_1','四个','一个','字母_2','三个','两个'],dtype ='对象')