Python 3.x 在Python中合并列表中的两个或多个连续表

Python 3.x 在Python中合并列表中的两个或多个连续表,python-3.x,Python 3.x,我有一个数据帧列表。这些表是从pdf文件中提取的。我面临的问题是,提取的两个表是彼此的延续。请参见下面的示例: import pandas as pd df1 = {'0':['Category','Home Services','Mobile','Internet'],'1':['Number',1,1,2]} df2 = {'0':['Job Title','Associate Partner','Developer 1','Developer 2'],'1':['Daily Rate',

我有一个数据帧列表。这些表是从pdf文件中提取的。我面临的问题是,提取的两个表是彼此的延续。请参见下面的示例:

import pandas as pd

df1 = {'0':['Category','Home Services','Mobile','Internet'],'1':['Number',1,1,2]}
df2 = {'0':['Job Title','Associate Partner','Developer 1','Developer 2'],'1':['Daily Rate',1000,1000,1000]}
df3 = {'0':['UI Developer','UX Designer','Delivery Manager'],'1':[1000,1000,1000]}
df4 = {'0':['Name','John','Sara','Mike'],'1':['Age',25,30,40]}
这里,df3是df2的延续。接下来,我把它们列在一个列表中。我用来提取表的库是camelot,它返回一个dataframe列表。因此,我将最终结果复制如下:

my_df1 = pd.DataFrame(df1)
my_df2 = pd.DataFrame(df2)
my_df3 = pd.DataFrame(df3)
my_df4 = pd.DataFrame(df4)
my_df_list = [my_df1,my_df2,my_df3,my_df4]
可以从pdf文件中提取n个表。如何将这些表合并为另一个表的延续?在我的示例df2和df3中。有图书馆可以这样做吗?或者以某种方式实现这一点?非常感谢你的帮助

干杯, 阿披舍克

您说过“我面临的问题是,提取的两个表是彼此的延续。”因此,如果我正确理解您的问题,您可以使用
pandas
concat()
函数连接两个数据帧

df = pd.concat([my_df2,my_df3])
print(df)
输出:

                   0           1
0          Job Title  Daily Rate
1  Associate Partner        1000
2        Developer 1        1000
3        Developer 2        1000
0       UI Developer        1000
1        UX Designer        1000
2   Delivery Manager        1000
您说过“我面临的问题是,提取的两个表是彼此的延续。”因此,如果我正确理解您的问题,您可以使用
pandas
concat()
函数连接两个数据帧

df = pd.concat([my_df2,my_df3])
print(df)
输出:

                   0           1
0          Job Title  Daily Rate
1  Associate Partner        1000
2        Developer 1        1000
3        Developer 2        1000
0       UI Developer        1000
1        UX Designer        1000
2   Delivery Manager        1000
IIUC:

df=pd.concat([df1,df2,df3,df4]中el的[pd.DataFrame(el)],轴=1)
df.columns=df.loc[0]
df=df.loc[1:]
产出:

0类别编号。。。姓名年龄
1家庭服务1。。。约翰25
2移动电话1。。。莎拉30
3互联网2。。。迈克40
IIUC:

df=pd.concat([df1,df2,df3,df4]中el的[pd.DataFrame(el)],轴=1)
df.columns=df.loc[0]
df=df.loc[1:]
产出:

0类别编号。。。姓名年龄
1家庭服务1。。。约翰25
2移动电话1。。。莎拉30
3互联网2。。。迈克40
我们在同一条船上
你可以试试这个

# tabula-py
# camelot
# PyPDF2
# pdf2text
# pdftotext

import tabula as tb
import camelot as cm
import pandas as pd

file = "Oct_11.pdf"

# tabula
tb.convert_into(file, file.split('.')[0]+'_tabula.csv', pages="all")

# camelot
tables = cm.read_pdf(file, pages='all')
df = pd.concat([tab.df for tab in tables], ignore_index=True)
df.to_csv(file.split('.')[0]+'_camelot.csv')

# PyPDF2
# pending

# pdf2text
# pending

# pdf2text
# pending

print('Program finished!')
如果您需要有关提取表的帮助,我将在将来更新我的答案
到现在为止,你只需要
df=pd.concat([tab.df用于表中的tab],忽略_index=True)

别忘了更改文件名

我们在同一条船上
你可以试试这个

# tabula-py
# camelot
# PyPDF2
# pdf2text
# pdftotext

import tabula as tb
import camelot as cm
import pandas as pd

file = "Oct_11.pdf"

# tabula
tb.convert_into(file, file.split('.')[0]+'_tabula.csv', pages="all")

# camelot
tables = cm.read_pdf(file, pages='all')
df = pd.concat([tab.df for tab in tables], ignore_index=True)
df.to_csv(file.split('.')[0]+'_camelot.csv')

# PyPDF2
# pending

# pdf2text
# pending

# pdf2text
# pending

print('Program finished!')
如果您需要有关提取表的帮助,我将在将来更新我的答案
到现在为止,你只需要
df=pd.concat([tab.df用于表中的tab],忽略_index=True)

别忘了更改文件名