如何从包含1个以上数据的列表中分离数据,并将以下内容附加到数据框-巨蟒-熊猫



我做这段代码是为了从pdf中提取数据,并在excel中创建一个列表,其中包含"订单编号"/"项目"/"数据"/归档名称。但是,当pdf中有不止一次的PO和项目编号时,这些数据会在列表中添加一个列表。这是可以的,但当我将列表放在数据帧panda中时,它会创建一个包含多个数据的列表,我需要将数据拆分并按顺序包含在下面的新列中。

lista_Pedido = []
lista_Data = []
lista_Item = []
nome_arquivo = []
for f in os.listdir():
col_3 = [f]
nome_arquivo.append(col_3)

reader = PdfReader(f)
page = reader.pages[0]
pdf_atual = page.extract_text(f)

col_1 = re.findall(r'w+(?<=PO: 45)d+',pdf_atual)
lista_Pedido.append(col_1)


col_12= re.findall(r'(?<=Item )d+',pdf_atual)
lista_Item.append(col_12)

col_2 = re.findall(r'[?<=(Date of delivery:  )|?<=(Data de fornecimento:  )]s+d+/+d+/+d+',pdf_atual)
lista_Data.append(col_2)

df = pd.DataFrame(data=(), columns=['Pedido','Item','Data'])
df['Item'] = (lista_Item)

df['Data'] = (lista_Data)
df['arquivo'] = (nome_arquivo)

错误的结果=列表中有超过1个数据,我需要按照列表的顺序在下面进行拆分和附加

在此处输入图像描述

获得列表列表的原因是re.findall返回一个列表。如果您想将结果添加为单独的结果,可以执行以下操作。

col_1 = re.findall(r'w+(?<=PO: 45)d+',pdf_atual)
lista_Pedido.extend(col_1)

或者:

col_1 = re.findall(r'w+(?<=PO: 45)d+',pdf_atual)
for result in col_1:
lista_Pedido.append(result)

最新更新