为什么我不能在Pandas中保留一些变量并重命名变量?

时间:2019-09-05 16:10:53

标签: python pandas dataframe

我正在尝试获取一个数据帧[样本]:

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'})

我在做什么错?我们非常感谢您的帮助。

1 个答案:

答案 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)