python - 重命名 pandas 列在索引错误中找不到
问题描述
我有一个名为v
where columns are =的数据框['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
返回基础值。你不应该直接改变那些。但支持直接分配给.columns
。
尝试这样的事情:
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"])
推荐阅读
- python - jupyter notebook 显示 matplotlib Bad key "text.kerning_factor" 的错误消息
- python - 如何在当前文件中使用来自外部类的构造函数?
- python - soup.select 返回空列表。需要帮助查找 css 代码的来源
- javascript - 如何使用可扩展道具检索 ReactJS 中的嵌套对象?
- python - x轴上的对数刻度,但在python中只能达到某个值
- pandas - 在 Pandas 中向现有 DataFrame 添加新列
- firebase - 如何将 1 个 Stream 应用于 2 个 StreamBuilder?
- r - 如何以相同格式组合训练和测试数据集
- jquery - Jquery datepiker 与 div 重叠
- javascript - SequelizeEagerLoadingError:父模型未关联到子模型