我正在尝试使用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
是否有一种“清洁”的方式来做类似的事情?
答案 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