使用熊猫读取空白单元格分隔的三角矩阵,其中空单元格为零

时间:2018-09-05 18:48:07

标签: python pandas data-munging

我正在尝试使用pandas.read_table()从文本文件中读取以空格分隔的下三角矩阵。矩阵的零项保留为空白。

    C1  C2  C3
R1   1
R2   2   3
R3   5   6   7

目前,我有以下丑陋的两步解决方案。

header = pd.read_table('test.txt', delim_whitespace=True, nrows=0)
names = list(header.columns.values)
names.insert(0, '')

df = pd.read_table('test.txt', delim_whitespace=True,
                        names=names, skiprows=1, index_col=0)

哪个确实给了我想要的东西。输出:

    C1   C2  C3
R1  1   NaN NaN
R2  2   3.0 NaN
R3  5   6.0 7.0

是否有一种“清洁”的方式来做类似的事情?

1 个答案:

答案 0 :(得分:1)

使用pandas.read_fwf读取固定宽度的文件

text = """\
    C1  C2  C3
R1   1
R2   2   3
R3   5   6   7"""

pd.read_fwf(pd.io.common.StringIO(text), index_col=0)

    C1   C2   C3
R1   1  NaN  NaN
R2   2  3.0  NaN
R3   5  6.0  7.0