Почему это не объединяет столбцы в дочернем файле - PullRequest
0 голосов
/ 10 июля 2020

Родительский файл выглядит как 1: A, 2: B, 3: C, 4: D, 5: E Дочерний файл выглядит как 1: A, 2: B

Я пытаюсь получить код для просмотра "Дочернего" файла, определения последней строки, затем переместите любую следующую строку из родительского файла в дочерний файл ..

Он правильно выбирается из родительского файла, но сдвигает данные, вставляя последний столбец

Ожидаемый результат

Col1, Col2: [1, A] [2, B] [3, C] [4 , D] [5, E]

Текущий результат

Col1, Col2, Col3: [1, A] [2, B] [&, 3, C ] [&, 4, D] [&, 5, E]

(Не знаю, я не могу заставить это правильно отображать таблицу)

import pandas as pd

rpt = pd.read_excel("parent.xlsx",header=1) # Report log File
inv = pd.read_excel("child.xlsx", header=1) # invoice Log File

#gets the last row in the report files
inv_index = inv.index
inv_numb_row = len(inv_index)

#Gets last row in invoice log
rpt_last = rpt.iloc[inv_numb_row:]

#Merges files together
merge = [inv,rpt_last]
result = pd.concat(merge)
#print(inv_last)
print(result)

#outputs new file
result.to_excel("child.xlsx", header=False)

1 Ответ

0 голосов
/ 14 июля 2020

Похоже, проблема в отсутствии заголовка, насколько я могу судить. Кажется, что concat ищет заголовок, соответствующий строкам. Поскольку заголовок был проигнорирован при чтении, два начальных значения используются в качестве заголовка для сопоставления. Если заголовки в родительском и дочернем файлах совпадают, то приведенный ниже код работает. Надеюсь, это немного поможет. Я изменил строки read_excel и concat (чтобы указать concat, какое соединение использовать).

import pandas as pd

rpt=pd.read_excel("parent.xlsx",header=0) # Report log File
inv=pd.read_excel("child.xlsx",header=0) # invoice Log File

#gets the last row in the report files
inv_index=inv.index
inv_numb_row=len(inv_index)

#Gets last row in invoice log
rpt_last=rpt.iloc[inv_numb_row:]

#Merges files together
merge=[inv,rpt_last]
result=pd.concat([inv,rpt_last],join="inner")

#outputs new file
result.to_excel("child.xlsx")
...