How to save the Pandas dataframe/series data as a figure?

前端 未结 7 1790
猫巷女王i
猫巷女王i 2020-11-29 00:25

It sounds somewhat weird, but I need to save the Pandas console output string to png pics. For example:

>>> df
                   sales  net_pft             


        
7条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-29 00:43

    Here is a somewhat hackish solution but it gets the job done.

    import numpy as np
    import pandas as pd
    from matplotlib.backends.backend_pdf import PdfPages
    import matplotlib.pyplot as plt
    
    from PySide.QtGui import QImage
    from PySide.QtGui import QPainter
    from PySide.QtCore import QSize
    from PySide.QtWebKit import QWebPage
    
    arrays = [np.hstack([ ['one']*3, ['two']*3]), ['Dog', 'Bird', 'Cat']*2]
    columns = pd.MultiIndex.from_arrays(arrays, names=['foo', 'bar'])
    df =pd.DataFrame(np.zeros((3,6)),columns=columns,index=pd.date_range('20000103',periods=3))
    
    h = "   

    " + df.to_html() + "

    "; page = QWebPage() page.setViewportSize(QSize(5000,5000)) frame = page.mainFrame() frame.setHtml(h, "text/html") img = QImage(1000,700, QImage.Format(5)) painter = QPainter(img) frame.render(painter) painter.end() a = img.save("html.png")

提交回复
热议问题