我正在使用pandas.read_csv来读取空白分隔文件。该文件在每行前面都有可变数量的空白字符(数字是右对齐的)。当我读取此文件时,它会创建一列NaN。为什么会发生这种情况,防止它的最佳方法是什么?
示例:
文字档案:
9.0 3.3 4.0
32.3 44.3 5.1
7.2 1.1 0.9
命令:
import pandas as pd
pd.read_csv("test.txt",delim_whitespace=True,header=None)
输出:
0 1 2 3
0 NaN 9.0 3.3 4.0
1 NaN 32.3 44.3 5.1
2 NaN 7.2 1.1 0.9
答案 0 :(得分:13)
FWIW我倾向于使用\s+
代替它,它不会遇到同样的问题:
>>> pd.read_csv("wspace.csv", header=None, delim_whitespace=True)
0 1 2 3
0 NaN 9.0 3.3 4.0
1 NaN 32.3 44.3 5.1
2 NaN 7.2 1.1 0.9
>>> pd.read_csv("wspace.csv", header=None, sep=r"\s+")
0 1 2
0 9.0 3.3 4.0
1 32.3 44.3 5.1
2 7.2 1.1 0.9