#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 во втором?