запись дополнительных данных в Excel после их создания с помощью dataframe

#python #excel #pandas #dataframe #pandas.excelwriter

#python #excel #pandas #dataframe #pandas.excelwriter

Вопрос:

 import pandas as pd
df1 = pd.DataFrame(Numpy_Array1)
df2 = pd.DataFrame(Numpy_Array2)
writer = pd.ExcelWriter('Results.xlsx', engine='xlsxwriter')
df1.to_excel(writer, sheet_name = 'Array1')
df2.to_excel(writer, sheet_name = 'Array2')
writer.save()
  

Здравствуйте, я написал несколько фреймов данных для Excel с помощью ExcelWriter, и теперь я хочу добавить следующие элементы на каждый лист непосредственно под последней строкой каждого листа (оставляя одну свободную строку между ними):

 a=10
b=20
c=40
d=80 
  

как мне это сделать?

Комментарии:

1. Почему бы вам сначала не попробовать, а затем показать нам, что вы пробовали, и если это не удалось.

2. @Chris Я поискал в Интернете, но не нашел никаких полезных сайтов, и у меня заканчивается время, поэтому я разместил здесь.

Ответ №1:

Вот один из способов сделать это:

 import pandas as pd

Numpy_Array1 = [10, 20, 30, 20, 15]
Numpy_Array2 = [10, 20, 30, 20, 15, 30, 45]

df1 = pd.DataFrame(Numpy_Array1)
df2 = pd.DataFrame(Numpy_Array2)

writer = pd.ExcelWriter('Results.xlsx', engine='xlsxwriter')

df1.to_excel(writer, sheet_name = 'Array1')
df2.to_excel(writer, sheet_name = 'Array2')


workbook = writer.book

worksheet = writer.sheets['Array1']
last_row = len(Numpy_Array1)   2  # Allow for header row and padding.
col = 0
worksheet.write(last_row   0, col, 'a')
worksheet.write(last_row   1, col, 'b')
worksheet.write(last_row   2, col, 'c')
worksheet.write(last_row   3, col, 'd')

col = 1
worksheet.write(last_row   0, col, 10)
worksheet.write(last_row   1, col, 20)
worksheet.write(last_row   2, col, 40)
worksheet.write(last_row   3, col, 80)

# Repeat for Numpy_Array2 or add a loop.

writer.save()
  

Вывод:

введите описание изображения здесь

Ключом к решению является получение дескриптора базовой рабочей книги, а оттуда рабочего листа. Для получения дополнительной информации см. главу «Работа с Pandas» документации XlsxWriter.

Комментарии:

1. Спасибо, как бы вы поступили, если a, b, c и d должны быть в первом столбце, а 10,20,40 и 80 во втором?