我有一个txt文件,其格式如下
a 1 blah
b 2 blah,inc
c 3 foo,inc
我希望使用df
将其读入read_csv()
,但逗号会给我一个错误,我不想跳过error_bad_lines=False
。
如何将每行读入df
ONE列?或者我应该使用其他方法吗?
答案 0 :(得分:3)
我认为您需要将默认分隔符,
更改为s\+
for white-space sep:
import pandas as pd
from pandas.compat import StringIO
temp=u"""
a 1 blah
b 2 blah,inc
c 3 foo,inc"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), sep='\s+', header=None, names=['a','b','c'])
print (df)
a b c
0 a 1 blah
1 b 2 blah,inc
2 c 3 foo,inc
对于一列,请使用一些不在|
或¥
等数据中的分隔符:
temp=u"""
a 1 blah
b 2 blah,inc
c 3 foo,inc"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), sep='|', header=None, names=['a'])
print (df)
a
0 a 1 blah
1 b 2 blah,inc
2 c 3 foo,inc
read_fwf
的另一个解决方案:
df = pd.read_fwf(StringIO(temp), header=None, colspecs=[(0, 100)])
print (df)
0
0 a 1 blah
1 b 2 blah,inc
2 c 3 foo,inc
答案 1 :(得分:1)
我认为pd.read_csv(delim_whitespace=True)
应该可以解决问题。