Python 使用pandas从CSV读取数据

Python 使用pandas从CSV读取数据,python,parsing,python-2.7,csv,pandas,Python,Parsing,Python 2.7,Csv,Pandas,我正在尝试使用pandas从csv读取数据,如下所示: import pandas as p loadData = lambda f: np.genfromtxt(open(f,'r'), delimiter=',') print "loading data.." traindata = list(np.array(p.read_csv('FinalCSVFin.csv', delimiter=";"))[:,2]) 我希望这能给我一个FinalCSVFin.csv第二栏的列表

我正在尝试使用pandas从csv读取数据,如下所示:

  import pandas as p
  loadData = lambda f: np.genfromtxt(open(f,'r'), delimiter=',')
  print "loading data.."
  traindata = list(np.array(p.read_csv('FinalCSVFin.csv', delimiter=";"))[:,2])
我希望这能给我一个FinalCSVFin.csv第二栏的列表。但是,它会返回错误:

---------------------------------------------------------------------------
CParserError                              Traceback (most recent call last)
<ipython-input-7-de5ad26b44d2> in <module>()
      7 
      8 print "loading data.."

CParserError: Error tokenizing data. C error: Expected 5 fields in line 3, saw 16
我在这里做错了什么?

1)更好的方法 2) 你的代码 您可以定义一个函数,使用numpy中的
genfromtxt
方法读取文件,然后使用pandas读取文件。我建议使用后者,只需在pandas中使用
read_csv
方法(如1所述)

3) 建议 以下是您可以更改以使代码正常工作的要点。 使用
np.genfromtxt
实现读取数据的函数。问题是分隔符不一致,而且
genfromtxt
中缺少
dtype
。我按如下方式编辑您的函数:

loadData = lambda f, s: np.genfromtxt(open(f,'r'), dtype=None, delimiter=s)
valus = loadData("test.txt", ";")
这将为您提供一个元组列表。如果您的文件(即FinalCSVFin.csv)使用“;”作为分隔符,请按如下方式调用此函数:

loadData = lambda f, s: np.genfromtxt(open(f,'r'), dtype=None, delimiter=s)
valus = loadData("test.txt", ";")

该文件中的字段似乎用分号分隔,而不是逗号。您是否在
read\u csv
调用中尝试将分隔符设置为分号?@BrenBarn是的,我尝试了此操作,但错误仍然存在:(然后请使用该分隔符发布代码,以及使用该代码时出现的错误。@BrenBarn代码已更新。错误消息相同!谢谢:)熊猫的哪个版本?这适用于0.13.1(使用这几行),您可以使用文件和这些行进行复制吗?