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