使用pandas读取带有前导空格的文本文件会产生NaN列

Cal*_*leb 9 python python-2.7 pandas

我正在使用pandas.read_csv来读取空白分隔文件.该文件在每行前面都有可变数量的空白字符(数字是右对齐的).当我读取此文件时,它会创建一列NaN.为什么会发生这种情况,防止它的最佳方法是什么?

例:

文本文件:

  9.0  3.3 4.0
 32.3 44.3 5.1
  7.2  1.1 0.9
Run Code Online (Sandbox Code Playgroud)

命令:

import pandas as pd
pd.read_csv("test.txt",delim_whitespace=True,header=None)
Run Code Online (Sandbox Code Playgroud)

输出:

    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
Run Code Online (Sandbox Code Playgroud)

DSM*_*DSM 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
Run Code Online (Sandbox Code Playgroud)