我正在尝试获取一个数据帧[样本]:
sample = pd.DataFrame({'VAR1': ['K0', 'K0', 'K1', 'K2', 'K3', 'K4', 'K5'],
'VAR2': ['A0', 'AX', 'A1', 'A2', 'A3', 'A4', 'A5'],
'VAR3': ['A0', 'AX', 'A1', 'A2', 'A3', 'A4', 'A5'],
'VAR4': ['A0', 'AX', 'A1', 'A2', 'A3', 'A4', 'A5']})
并尝试仅保留一些列并将列“重命名”为:
sample[['VAR1','VAR2','VAR3']].rename(columns={'VAR1': 'NEW_VAR'}, inplace = True)
没有运气。
但是,当我分配一个没有inplace选项的新数据框时,它的工作方式如下:
sample_short=sample[['VAR1','VAR2','VAR3']].rename(columns={'VAR1': 'NEW_VAR'})
我在做什么错?我们非常感谢您的帮助。
答案 0 :(得分:1)
传递inplace=True
时,数据将被重命名(返回None
)。因此,基本上,您正在复制数据帧,然后执行返回None
的方法,这就是为什么它不起作用的原因。
您应该使用:
sample_short = sample[['VAR1', 'VAR2', 'VAR3']].rename(columns={'VAR1': 'NEW_VAR'})
或
sample_short = sample[['VAR1', 'VAR2', 'VAR3']]
sample_short.rename(columns={'VAR1': 'NEW_VAR'}, inplace=True)