我有以下文本文件,我想在python中加载:
cabin embarked boat body
0 B5 S 2 NaN
1 C22 C26 S 11 NaN
2 C22 C26 S NaN NaN
3 C22 C26 S NaN 135.0
4 C22 C26 S NaN NaN
5 E12 S 3 NaN
6 D7 S 10 NaN
7 A36 S NaN NaN
8 C101 S D NaN
根据我收到的类似问题的回复,我尝试了以下内容:
df = pd.read_fwf("test.csv", header=0, index_col=0)
它工作正常。 但以下不起作用:
pd.read_csv("test.csv", sep="\s{2,}", header=0, index_col=0, engine="python")
我收到以下错误:
ValueError: Expected 4 fields in line 2, saw 5
鉴于sep =" \ s {2,}"认为字段由2个或更多个空格分隔,
line 2 (0 B5 S 2 NaN),
应该已经解析没有任何问题。另外,我在第2行只看到4个字段(不包括由index_col = 0处理的行索引);这是错误所指的第5个字段?
答案 0 :(得分:0)
cabin embarked
只相隔一个空格,并被解析为单个字符串。
pd.read_csv
被给予一定的自由度,并指出索引有一个空的空间。
cabin embarked boat body
# ^ ^ ^ ^
# field 1 field 2 field 3 field 4
# this row establishes expectations
0 B5 S 2 NaN
^ ^ ^ ^ ^
field 1 field 2 field 3 fd 4 field 5
这就是错误。第1行建立了4个字段的优先级,第2行显示为5。