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

Use Pandas to to read whitespace delimited triangular matrix with empty cells as zeros

我正在尝试使用 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

是否有"cleaner"方法来做类似的事情?

使用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