PY
喂,
我還需要打印爲.PDF一些熊貓據幀安排的報告。我直接用df嘗試了ReportLab,並且有一個「AttributeError:'DataFrame'對象沒有屬性'split'。」我試着用df.values()並且有「TypeError:'numpy.ndarray'對象不可調用」。
當接近跳槽的想法打造.PDF報告我試圖STR(DF)和我曾在一些.PDF結果:-) ......代碼如下:
import pandas as pd
from reportlab.pdfgen import canvas
PATH_OUT = "C:\\"
def pdf_df(c, testo, x, y):
c.drawAlignedString(x,y, testo)
df = pd.DataFrame({'a':[3,4,5], 'b':[6,7,6],'c':[9,10,11]})
print df, type(df)
print''
df1 = (df['a'].groupby([df['b'], df['a']])).sum()
print df1, type(df1)
print ''
c = canvas.Canvas(PATH_OUT + 'out.pdf')
pdf_df (c, str(df), 300, 500)
pdf_df (c, str(df1), 300, 480)
c.showPage()
c.save()
什麼你認爲 ?這可能有意義或者可能有一些'更聰明'的方式?
這一個似乎不太有效,我最初希望從ReportLab。看來我需要那麼一些方式來包裝線..和大小將會改變...
法比奧
=====
我現在更快樂以下解決方案,而我對上面的一個也不滿意。
這是基於ReportLab網格,它們在列表上工作。因此代碼轉換DF列出,然後將其作爲一個網格的ReportLab處理:-)
這就是:
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import *
from reportlab.lib import colors
import pandas as pd
import random
PATH_OUT = "C:\\"
elements = []
styles = getSampleStyleSheet()
doc = SimpleDocTemplate(PATH_OUT + 'Report_File.pdf')
elements.append(Paragraph("Report Title", styles['Title']))
data = [[random.random() for i in range(1,4)] for j in range (1,8)]
df = pd.DataFrame (data)
lista = [df.columns[:,].values.astype(str).tolist()] + df.values.tolist()
ts = [('ALIGN', (1,1), (-1,-1), 'CENTER'),
('LINEABOVE', (0,0), (-1,0), 1, colors.purple),
('LINEBELOW', (0,0), (-1,0), 1, colors.purple),
('FONT', (0,0), (-1,0), 'Times-Bold'),
('LINEABOVE', (0,-1), (-1,-1), 1, colors.purple),
('LINEBELOW', (0,-1), (-1,-1), 0.5, colors.purple, 1, None, None, 4,1),
('LINEBELOW', (0,-1), (-1,-1), 1, colors.red),
('FONT', (0,-1), (-1,-1), 'Times-Bold'),
('BACKGROUND',(1,1),(-2,-2),colors.green),
('TEXTCOLOR',(0,0),(1,-1),colors.red)]
table = Table(lista, style=ts)
elements.append(table)
doc.build(elements)
我真的很感興趣,瞭解其他可能的解決方案..
再見,法比奧。
所以這個問題與pivot_table無關?但是這是Table類,那是什麼?你可以舉一個簡單的DataFrame的例子,它表現出這種行爲(它是否適用於'df = pd.DataFrame([[1,2],[3,4]])?) –
對不起,是的, DataFrame而不是pivot_table。它不適用於你的例子。 –
也許這是有道理的,而不是使用這個例子(這將有助於如果我們可以重新創建錯誤)......什麼是'pivot_cols'和'column_order'變量? –