我正在尝试使用 Tabula-Py 读取 pdf 中的数据,但遇到一个小问题:
库读取数据如下:
F 01/02/1994 01/12/1994 ac $123
0 M 01/03/1994 01/10/1992 ad $133
1 M 01/04/1994 01/09/1992 ae $133
2 M 01/05/1994 01/08/1992 aa $133
当我给它们列名时:问题是第一行在 Tabula-PDF 读取时自动被视为标题而不是数据,因此输出变为:
Gender D.O.B D.O.P Plan Price
0 M 01/03/1994 01/10/1992 ad $133
1 M 01/04/1994 01/09/1992 ae $133
2 M 01/05/1994 01/08/1992 aa $133
这是不正确的。它会删除第一行
所需的正确输出如下:
Gender D.O.B D.O.P Plan Price
0 F 01/02/1994 01/12/1994 cc $123
1 M 01/03/1994 01/10/1992 aa $133
2 M 01/04/1994 01/09/1992 aa $133
3 M 01/05/1994 01/08/1992 aa $133
我正在使用的代码是:
def table_type_2(path):
df = read_pdf(path,guess = True, multiple_tables=True)
head = ['Gender', 'Date of Birth', 'Date of', 'Coverage', 'Gross Benefit']
for i in range (0,len(df)):
print(len(df[i]))
dfnew.append(df[i])
e = pd.DataFrame(dfnew[i],index=None)
print(e)
f = pd.DataFrame(e,columns=head)
g = pd.DataFrame(data = e.values,columns=f.columns)
print(g)
有没有办法让我不会丢失第一行?
最佳答案
您可以调换数据帧和reset_index
,使标题变成普通列。然后你可以转回:
def table_type_2(path):
df = read_pdf(path,guess = True, multiple_tables=True)
head = ['Gender', 'Date of Birth', 'Date of', 'Coverage', 'Gross Benefit']
df = df.T.reset_index().T.reset_index(drop=True)
df.columns = head
return df
关于python - 如何将数据帧的第一行读取为数据行而不是标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62131998/