Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么可以';我是否保留了一些变量并在熊猫中重命名变量?_Python_Pandas_Dataframe - Fatal编程技术网

Python 为什么可以';我是否保留了一些变量并在熊猫中重命名变量?

Python 为什么可以';我是否保留了一些变量并在熊猫中重命名变量?,python,pandas,dataframe,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'],

我正在尝试获取数据帧[示例]:

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']})
并尝试仅保留一些列,并将列重命名为“就地”:

没有运气

但是,当我在没有inplace选项的情况下分配新的数据帧时,它的工作原理如下:

sample_short=sample[['VAR1','VAR2','VAR3']].rename(columns={'VAR1': 'NEW_VAR'})

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

当传递
inplace=True
时,数据将被重命名(返回
None
)。因此,基本上,您正在复制一个数据帧,然后执行一个返回
None
的方法,这就是它不起作用的原因

你应使用:

sample_short = sample[['VAR1', 'VAR2', 'VAR3']].rename(columns={'VAR1': 'NEW_VAR'})


sample[['VAR1'、'VAR2'、'VAR3']
是一个新对象。您正在对该对象调用
。重命名
,而不是原始数据帧。这个新对象现在没有绑定名称,并且被Python取消引用。此外,我建议避免使用
inplace
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)