我有一个包含许多表格的文本文件。我想将这些表捕获到数据框中。问题是,尽管这些表格看起来像表格,但它们在结构上只是文本。它们看起来像表格的原因是间距的使用。像这样:
Three Months Ended Nine Months Ended
------------------ -----------------
November 30, November 30,
1996 1995 1996 1995
------- ------- -------- --------
<S> <C> <C> <C> <C>
DEPARTMENTA Team 1 73,003 $52,729 $235,753 $169,532
DEPARTMENTA Team 2 51,129 37,770 162,884 119,006
我希望数据框看起来像这样:
用文字描述数据框:5 列:
加上标题和 20 行数据
我试图识别任何标记来帮助我解析它,但看起来没有任何标记。它不是 html xml 或 excel..只是文本
谢谢您的帮助
如果两个或更多空格严格出现在列之间,那么您可以使用 pd.read_table
或
pd.read_csv
以及超过 1 个空格作为分隔符并跳过带有标题的行,排序如下:
headerhight = 6
fieldsep = r'\t+|\s{2,}'
names = ['your', 'names', 'for', 'each', 'column']
pd.read_table(
file, skiprows=headerhight, sep=fieldsep,
header=None, names=names, engine='python', dtype=str)
剩下的就是清理数据,比如:
for col in df.columns[1:]:
df[col] = (
df[col]
.str.lstrip('$')
.str.replace(',', '.')
.astype(float)
)
但是更精确的方法仍然取决于上下文。