Как писать в существующие xlsx и перезаписывать специфицированные c столбцы - PullRequest
0 голосов
/ 23 января 2020

У меня есть фрейм данных, и я хочу добавлять к этому фрейму новые строки каждый день. Но проблема в том, что мой код автоматизирует процесс создания электронной таблицы, поэтому мне нужно изменить старый файл xlsx, чтобы добавить новые строки. Эти новые строки иногда добавляют только те строки, которых раньше не было, но большую часть времени они обновляют значение столбца, которое совпадает с новым.

Это что-то вроде:

df = pd.DataFrame({'A' : 'C123', 'B' : 'C212', 'C' : 'C111'}, index = ['XXX'])
df

        A       B       C
XXX     C123    C212    C111

Итак, если я вставлю новую строку, также называемую XXX , которая имеет то же значение, что и первая строка в столбце A , я хочу перезаписать это.

Я пробовал эту функцию, но она заменяет все старые строки только новыми. Это даже не добавляет к старому, что было бы очень полезно.

def update_xlsx(dataframe, xlsx):
  try:
    book = load_workbook(xlsx)
    writer = pd.ExcelWrite(xlsx, mode = 'a')
    writer.book = book
    writer.sheets = dict((sheet.title, sheet) for sheet in book.worksheets)
    dataframe.to_excel(writer, "Sheet1")
    writer.save()
  except FileNotFoundError:
    dataframe.to_excel('xlsx_name')
...