1

我有一个输入文件,我正在尝试读入 pandas 数据框。该文件以空格分隔,包括第一个值之前的空格。我已经尝试使用“\W+”正则表达式作为分隔符的 read_csv 和 read_table。

data = pd.io.parsers.read_csv('file.txt',names=header,sep="\W+")

他们读入了正确数量的列,但这些值本身完全是假的。有没有其他人经历过这个,或者我使用不正确

我还尝试逐行读取文件,从中创建一个系列row.split()并将该系列附加到数据帧,但它似乎由于内存而崩溃。

是否有任何其他选项可以从文件创建数据框?

我正在使用 Pandas v0.11.0,Python 2.7

4

2 回答 2

2

正则表达式的'\W'意思是“不是单词字符”(“单词字符”是字母、数字和下划线),请参阅re docs,因此结果很奇怪。我认为您打算使用 whitespace '\s+'

注意:read_csv提供一个delim_whitespace参数(您可以将其设置为 True),但我个人更喜欢使用'\s+'.

于 2013-08-01T15:39:11.090 回答
1

我不知道您的数据是什么样的,所以我无法重现您的错误。我创建了一些示例数据,它运行良好,但有时在 read_csv 中使用正则表达式可能会很麻烦。如果要指定分隔符,请改用“”作为分隔符。但我建议首先尝试安迪海登的建议。它是“delim_whitespace=True”。它运作良好。

您可以在此处的文档中看到它:http: //pandas.pydata.org/pandas-docs/dev/io.html

于 2013-08-01T15:45:19.443 回答