我尝试将CSV文件读入panda Dataframe 并选择一列,但总是得到一个键错误。
文件成功读入,我可以在iPython笔记本中查看 Dataframe ,但是当我想选择第一列以外的列时,它会抛出一个键错误。
我正在使用此代码:
import pandas as pd
transactions = pd.read_csv('transactions.csv',low_memory=False, delimiter=',', header=0, encoding='ascii')
transactions['quarter']
这是我正在处理的文件https://www.dropbox.com/s/81iwm4f2hsohsq3/transactions.csv?dl=0
谢谢大家!
6条答案
按热度按时间bmvo0sr51#
使用
sep='\s*,\s*'
,这样您就可以处理column-names中的空格:或者,您可以确保CSV文件中没有未加引号的空格,并使用您的命令(未更改)
证明:
输出:
qzlgjiam2#
如果你需要从 Dataframe 中选择多个列,使用2对方括号,例如
w80xi6nr3#
我遇到了同样的问题,即在从CSV读取后过滤列时发生键错误。
原因
这些问题的主要原因是额外的初始空格在您的CSV文件。(发现在您上传的CSV文件,如
, customer_id, store_id, promotion_id, month_of_year,
)证明
要证明这一点,可以尝试使用
print(list(df.columns))
,并且列名必须为['product_id', ' customer_id', ' store_id', ' promotion_id', ' month_of_year', ...]
。溶液
解决这个问题的直接方法是在
pd.read_csv()
中添加参数,例如:参考:https://stackoverflow.com/a/32704818/16268870
b1payxdu4#
如果键与任何 Dataframe 列名"完全"不匹配,通常会出现键错误:
您也可以尝试:
flvlnr445#
在www.example.com _csv()中给予csv文件的完整路径pd.read,这对我有效
rm5edbpk6#
当数据集按,“”拆分时,创建的特征在开头有空格。使用正则表达式删除空格可能会有帮助。
目前我是这样做的:
标签名称= '标签'