python - Pandas 不识别 csv 列

标签 python csv pandas

我正在使用 pandas 读取 .csv 数据文件。对于我的一个文件,我可以使用列标题进行索引。对于另一个,我收到错误消息

File "/usr/lib/python2.7/dist-packages/pandas/core/internals.py", 
line 1023, in _check_have
raise KeyError('no item named %s' % com.pprint_thing(item))
KeyError: u'no item named State'

我使用的代码是:

filename = "PovertyEstimates.csv"
#filename = "nm.csv"

f = open(filename)
import pandas as pd

data = pd.read_csv(f)#, index_col=0)
print data['State']

即使我使用 index_col 我也会得到同样的错误(除非它是 0)。我发现当我打印在我的终端中不起作用的 csv 文件时,它没有像原来那样分成几列。相反,每一行中的项目都是连续打印的,用空格隔开。我认为这种不正确的分离是问题所在。

我在 Ubuntu Linux 上使用 LibreOffice Calc。对于格式不正确的文件(在 LibreOffice 中以完美格式显示),终端输出为:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 3194 entries, 0 to 3193
Data columns:
FIPStxt State   Area_name   Rural-urban_Continuum Code_2003       Urban_Influence_Code_2003 Rural-urban_Continuum Code_20013      Urban_Influence_Code_20013    POVALL_2011 CI90LBAll_2011    CI90UBALL_2011    PCTPOVALL_2011  CI90LBALLP_2011 CI90UBALLP_2011 POV017_2011 CI90LB017_2011  CI90UB017_2011  PCTPOV017_2011  CI90LB017P_2011 CI90UB017P_2011 POV517_2011 CI90LB517_2011  CI90UB517_2011  PCTPOV517_2011  CI90LB517P_2011 CI90UB517P_2011 MEDHHINC_2011   CI90LBINC_2011  CI90UBINC_2011  POV05_2011  CI90LB05_2011   CI90UB05_2011   PCTPOV05_2011   CI90LB05P_2011       CI90UB05P_2011    3194  non-null values
dtypes: object(1)

csv 文件的前几行是:

FIPStxt State   Area_name   Rural-urban_Continuum Code_2003       
01000   AL  Alabama      
01001   AL  Autauga County  2   2
01003   AL  Baldwin County  4   5

最佳答案

空格可能是问题所在。您需要告诉 pandas 在解析 CSV 时使用什么分隔符。

data = pd.read_csv(f, sep=" ")

但问题是,它将选择所有 空格作为有效分隔符(例如,Alabama County 变为 2 列)。最好的办法是将该文件转换为实际的逗号(分号或其他)分隔文件或确保引用复合值(“Alabama County”),然后指定引号:

data = pd.read_csv(f, sep=" ", quotechar='"')

关于python - Pandas 不识别 csv 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946933/

相关文章:

python - 无法在 Python 中终止 airodump 进程

python - 类型错误 : 'DataFrameWriter' object is not callable

python-3.x - Pandas : Get the count of values and ID from a pattern of 1 and 0 in a pandas dataframe

python - 用于 cumsum 的 Groupby 函数并重置其索引

python - 比 numpy 的 in1d 掩码函数 : ordered arrays? 做得更好

python - SpringBoot org.springframework.beans.factory.UnsatisfiedDependencyException 异常

javascript - Python Web Scraper - 页面 JavaScript 定义的每页结果有限

php - 如何解决csv文件导入中的单引号错误?

php - 使用 fputcsv 导出 mysql 查询数组

python - 如何比较两个 CSV 文件并找出差异?