在这种情况下,如何解决KeyError(f“所有[{key}]都不在[{axis_name}]”)问题(Pandas)?

2024-04-23 06:23:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CSV文件,例如:

^{tb1}$

现在,我想使用pandas输出一个新的CSV文件,该文件也有新的列,例如:

^{tb2}$

我希望在随机位置创建新列,并希望在新列中将值设置为空白

我试过使用:

import pandas as pd

df = pd.read_csv("sample.csv")
final_df = df.loc[['id','name','grade','address','physics','chemistry','attendance','maths','total']]

当我这样做时,我犯了一个错误:

KeyError(f“None of [{key}] are in the [{axis_name}]”)

有什么想法或建议来安排这个


Tags: 文件csvsamplenameimportpandasdfread
2条回答

如果要添加新列,应使用axis=1尝试reindex

import pandas as pd

df = pd.read_csv("sample.csv")
final_df = df.reindex(['id','name','grade','address','physics','chemistry','attendance','maths','total'], axis=1)

假设您已经有了数据帧,我们使用您提供的代码:

import pandas as pd

df = pd.read_csv("sample.csv")

额外的列应该存储在列表中,这使代码更易于编写和理解

additional_cols = ['grade','address','attendance','total']

添加多个列的最佳方法是像U11 Forward这样的重新索引

mydf = df.reindex(df.columns.tolist() + additional_cols, axis = 1)

这里提出了一个类似的问题[1]:How to add an empty column to a dataframe?

关于您的错误,文档帮助您:loc方法用于访问元素,而不是创建元素。如果元素不可访问,则返回键错误

相关问题 更多 >