重命名熊猫列会在索引错误中找不到

尼鲁帕·鲁帕辛格(Nilupa Rupasinghe)

我有一个数据框v,其中column = ['self','id','desc','name','arch','rel']当我重命名如下时,它不会让我删除给出column not found in axis错误的

情况1:

for i in range(0,len(v.columns)):
   #I'm trying to add 'v_' prefix to all col names
   v.columns.values[i] = 'v_' + v.columns.values[i]

v.drop('v_self',1)

#leads to error
KeyError: "['v_self'] not found in axis"

但是,如果我按以下方式进行操作,则效果很好

情况2:

v.columns = ['v_self','v_id','v_desc','v_name','v_arch','v_rel']
v.drop('v_self',1)
# no error

在两种情况下,如果我都遵循它,则其列的结果相同

v.columns
#both cases gives 
Index(['v_self', 'v_id', 'v_description', 'v_name', 'v_archived',
   'v_released'],
  dtype='object')

我不明白为什么case1会出现错误?请帮忙,谢谢。

吉斯·沃本

那是因为.values返回基础值。您不应该直接更改那些。.columms不过支持直接分配给

尝试这样的事情:

import pandas

df = pandas.DataFrame(
    [
        {key: 0 for key in ["self", "id", "desc", "name", "arch", "rel"]}
        for _ in range(100)
    ]
)

# Add a v_ to every column
df.columns = [f"v_{column}" for column in df.columns]

# Drop one column
df = df.drop(columns=["v_self"])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章