我有一个看起来像这样的文本文件:
`
101 the 323
103 to 324
104 is 325
其中分隔符是四个空格。我正在尝试read_csv
函数,以便将其转换为pandas数据框。
data= pd.read_csv('file.txt', sep=" ", header = None)
然而它给了我很多NaN值
101\tthe\tthe\t10115 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
102\tto\tto\t5491 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
103\tof\tof\t4767 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
104\ta\ta\t4532 NaN NaN NaN NaN NaN NaN NaN NaN NaN Na
有什么方法可以将文本文件读成正确的csv格式。
答案 0 :(得分:3)
如果需要分隔符4
空格:
data = pd.read_csv('file.txt', sep="\s{4}", header = None, engine='python')
print (data)
0 1 2
0 101 the 323
1 103 to 324
2 104 is 325
如果需要分隔符一个或多个witespace,请使用参数delim_whitespace=True
(感谢carthurs)或\s+
:
data = pd.read_csv('file.txt', sep="\s+", header = None)
data = pd.read_csv('file.txt', delim_whitespace=True, header = None)
但如果分隔符为tab
:
data = pd.read_csv('file.txt', sep="\t", header = None)
答案 1 :(得分:0)
你有一个固定宽度的文件,所以你可以使用read_fwf
来嗅探文件的形式:
In[79]:
pd.read_fwf('file.txt', header=None)
Out[79]:
0 1 2
0 101 the 323
1 103 to 324
2 104 is 325