Как сохранить pandas dataframe в существующий pdf из PdfPages - PullRequest
0 голосов
/ 18 декабря 2018

Я создал PDF, который сохраняет несколько графиков, созданных с помощью Matplotlib.

Я сделал следующее, чтобы создать PDF

from matplotlib.backends.backend_pdf import PdfPages
report = PdfPages('report.pdf')

После создания графика я бы сделал это report.savefig() каждый раз.Тем не менее, я также хочу вывести сгенерированные мной данные в Pdf.По сути, я хочу, чтобы отчет содержал графики и запрошенные кадры данных в одном месте.Можно ли добавить фрейм данных в Pdf, используя тот, который создан с помощью PdfPages, и если да, то как мне это сделать?Если нет, есть ли другой подход, который позволил бы расположить графики и данные в одном месте (без необходимости сохранения отдельных компонентов и их объединения)?Буду рад любым предложениям и примерам.Спасибо!

1 Ответ

0 голосов
/ 18 декабря 2018

Просто создайте график таблицы и сохраните ее.Имея такой фрейм данных, как:

import pandas as pd

df = pd.DataFrame()
df['Animal'] = ['Cow', 'Bear']
df['Weight'] = [250, 450]
df['Favorite'] = ['Grass', 'Honey']
df['Least Favorite'] = ['Meat', 'Leaves']

, который выглядит следующим образом:

  Animal  Weight Favorite Least Favorite
0    Cow     250    Grass           Meat
1   Bear     450    Honey         Leaves

, вы можете построить его настольную версию следующим образом:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(9,2))
ax = plt.subplot(111)
ax.axis('off')
ax.table(cellText=df.values, colLabels=df.columns, bbox=[0,0,1,1])

Вывод:

enter image description here

Вы можете придать стилю табличный стиль немного приятнее, добавив немного цвета фона в ячейки:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(9,2))
ax=plt.subplot(111)
ax.axis('off')
c = df.shape[1]
ax.table(cellText=np.vstack([df.columns, df.values]), cellColours=[['lightgray']*c] + [['none']*c]*2, bbox=[0,0,1,1])

Вывод:

enter image description here

См. текущую тему (из которой были взяты все эти примеры) для получения дополнительных идей / вариантов.

Редактировать

Мне пришло в голову, что вы, возможно, захотите нанести изображения и таблицы на одну фигуру.Вы можете сделать так, чтобы получить такие результаты:

enter image description here

Вот ссылка на учебник , с которого пришло изображение, которое имеетпример кода, который поможет вам начать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...