使用Pandas读取文本文件,其中某些行具有空元素?

时间:2016-10-19 15:15:38

标签: python pandas

我在文本文件中有一个看起来像这样的数据集。

    0    0CF00400 X       8  66  7D  91  6E  22  03  0F  7D       0.021650 R
    0    18EA0080 X       3  E9  FE  00                           0.022550 R
    0    00000003 X       8  D5  64  22  E1  FF  FF  FF  F0       0.023120 R

我用

读了这个
file_pandas = pd.read_csv(fileName, delim_whitespace = True, header = None, engine = 'python')

获得输出

    0   0  0CF00400  X   8  66  7D  91        6E  22    03    0F    7D  0.02165   
    1   0  18EA0080  X   3  E9  FE   0  0.022550   R  None  None  None      NaN   
    2   0  00000003  X   8  D5  64  22        E1  FF    FF    FF    F0  0.02312   

但我希望将其读作

    0   0  0CF00400  X   8  66  7D  91        6E  22    03    0F    7D  0.021650   R  
    1   0  18EA0080  X   3  E9  FE  00                                  0.022550   R
    2   0  00000003  X   8  D5  64  22        E1  FF    FF    FF    F0  0.023120   R

我已尝试删除delim_whitespace = True并将其替换为delimiter = " ",但只是将上面显示的输出中的前四列合并,但它确实正确解析了其余数据,这意味着其余列类似于原始txt文件(禁止空格中的NaN值)。

我不确定如何从这里开始。

附注:00仅被解析为0。有没有办法显示00

1 个答案:

答案 0 :(得分:8)

您的数据似乎是固定宽度列,您可以尝试pandas.read_fwf()

from io import StringIO
import pandas as pd

df = pd.read_fwf(StringIO("""0    0CF00400 X       8  66  7D  91  6E  22  03  0F  7D       0.021650 R
0    18EA0080 X       3  E9  FE  00                           0.022550 R
0    00000003 X       8  D5  64  22  E1  FF  FF  FF  F0       0.023120 R"""), 
                 header = None, widths = [1,12,2,8,4,4,4,4,4,4,4,4,16,2])

enter image description here