我有一个看起来像这样的文本文件:
`
101 the 323
103 to 324
104 is 325
Run Code Online (Sandbox Code Playgroud)
其中分隔符是四个空格。我正在尝试read_csv函数以将其转换为熊猫数据框。
data= pd.read_csv('file.txt', sep=" ", header = None)
Run Code Online (Sandbox Code Playgroud)
然而它给了我很多 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
Run Code Online (Sandbox Code Playgroud)
有什么方法可以将文本文件读取为正确的 csv 格式。
如果需要分隔符正好是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
Run Code Online (Sandbox Code Playgroud)
或者使用参数delim_whitespace=True(感谢carhurs)或者\s+如果需要分隔符一个或多个空格:
data = pd.read_csv('file.txt', sep="\s+", header = None)
data = pd.read_csv('file.txt', delim_whitespace=True, header = None)
Run Code Online (Sandbox Code Playgroud)
但如果分隔符是tab:
data = pd.read_csv('file.txt', sep="\t", header = None)
Run Code Online (Sandbox Code Playgroud)