首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyError:列名

KeyError:列名
EN

Stack Overflow用户
提问于 2020-11-23 19:58:44
回答 1查看 124关注 0票数 1

我像这样加载一个数据集:

代码语言:javascript
复制
df_performance = pd.read_csv('.local.csv')
df_performance.head()

csv文件中的数据已显示为表格。打印头和普通的一样。但是,当我尝试运行此代码片段时:

代码语言:javascript
复制
df_performance["Day"] = ""

df_performance.loc['Day'] = [str(x) for x in df_performance.loc["From"]]

我得到这样的错误:

代码语言:javascript
复制
KeyError                                  Traceback (most recent call last)
/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2645             try:
-> 2646                 return self._engine.get_loc(key)
   2647             except KeyError:

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index_class_helper.pxi in pandas._libs.index.Int64Engine._check_type()

KeyError: 'From'

During handling of the above exception, another exception occurred:

我还尝试打印列的名称,我知道'From‘是存在的。那么为什么我会得到这样的错误呢?

代码语言:javascript
复制
for col_name in df_performance:
    print(col_name)
代码语言:javascript
复制
    From           Cost   helps
0   Jan 1, 2020      3      4       
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-23 20:00:13

如果使用loc,它将按标签而不是列名选择索引。因此,如果不存在标签,则会引发错误:

代码语言:javascript
复制
df_performance.loc['Day'] = [str(x) for x in df_performance.loc["From"]]

因此似乎需要将列转换为字符串:

代码语言:javascript
复制
#by list comprehension
df_performance['Day'] = [str(x) for x in df_performance["From"]]

#by function
df_performance['Day'] = df_performance["From"].astype(str)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64967990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档