第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將熊貓DataFrame表另存為PNG

如何將熊貓DataFrame表另存為PNG

瀟湘沐 2019-11-28 10:11:02
我構(gòu)建了一個(gè)結(jié)果熊貓數(shù)據(jù)框。該數(shù)據(jù)幀充當(dāng)表格。有MultiIndexed列,每一行代表一個(gè)名稱,即index=['name1','name2',...]創(chuàng)建DataFrame時(shí)的名稱。我想顯示此表并將其另存為png(或其他任何圖形格式)。目前,我能得到的最接近的是將其轉(zhuǎn)換為html,但是我想要一個(gè)png。似乎有人問(wèn)過(guò)類似的問(wèn)題,例如如何將Pandas數(shù)據(jù)框/系列數(shù)據(jù)保存為圖形?但是,標(biāo)記的解決方案將數(shù)據(jù)幀轉(zhuǎn)換為折線圖(而不是表格),而另一種解決方案則依賴于PySide,我只是想將其保留下來(lái),因?yàn)槲覠o(wú)法在Linux上pip安裝它。我希望此代碼易于移植。我真的期望使用python輕松創(chuàng)建png表。感謝所有幫助。
查看完整描述

3 回答

?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

Pandas允許您使用matplotlib繪制表(此處有詳細(xì)信息)。通常,這會(huì)將表格直接繪制到您不想要的圖表(帶有軸和所有內(nèi)容)上。但是,可以先刪除這些:


import matplotlib.pyplot as plt

import pandas as pd

from pandas.table.plotting import table # EDIT: see deprecation warnings below


ax = plt.subplot(111, frame_on=False) # no visible frame

ax.xaxis.set_visible(False)  # hide the x axis

ax.yaxis.set_visible(False)  # hide the y axis


table(ax, df)  # where df is your data frame


plt.savefig('mytable.png')

輸出可能不是最漂亮的,但是您可以在此處找到table()函數(shù)的其他參數(shù)。也感謝這篇文章提供了有關(guān)如何在matplotlib中刪除軸的信息。


編輯:

這是一種使用上述方法進(jìn)行繪圖時(shí)模擬多索引的方式(無(wú)疑是很hacky)。如果您有一個(gè)稱為df的多索引數(shù)據(jù)框,如下所示:


first  second

bar    one       1.991802

       two       0.403415

baz    one      -1.024986

       two      -0.522366

foo    one       0.350297

       two      -0.444106

qux    one      -0.472536

       two       0.999393

dtype: float64

首先重置索引,使它們成為普通列


df = df.reset_index() 

df

    first second       0

0   bar    one  1.991802

1   bar    two  0.403415

2   baz    one -1.024986

3   baz    two -0.522366

4   foo    one  0.350297

5   foo    two -0.444106

6   qux    one -0.472536

7   qux    two  0.999393

通過(guò)將它們?cè)O(shè)置為空字符串,從高階多索引列中刪除所有重復(fù)項(xiàng)(在我的示例中,我在“ first”中僅具有重復(fù)索引):


df.ix[df.duplicated('first') , 'first'] = ''

df

  first second         0

0   bar    one  1.991802

1          two  0.403415

2   baz    one -1.024986

3          two -0.522366

4   foo    one  0.350297

5          two -0.444106

6   qux    one -0.472536

7          two  0.999393

將“索引”上的列名稱更改為空字符串


new_cols = df.columns.values

new_cols[:2] = '',''  # since my index columns are the two left-most on the table

df.columns = new_cols 

現(xiàn)在調(diào)用表格函數(shù),但將表格中的所有行標(biāo)簽設(shè)置為空字符串(這可確保不顯示繪圖的實(shí)際索引):


table(ax, df, rowLabels=['']*df.shape[0], loc='center')

等:http://img1.sycdn.imooc.com//5ddf2cd200011ec306270158.jpg

您不太漂亮但功能齊全的多索引表。


編輯:棄用警告

正如評(píng)論中指出的,import語(yǔ)句用于table:


from pandas.tools.plotting import table

現(xiàn)在已在較新版本的熊貓中棄用,而支持:


from pandas.plotting import table 


查看完整回答
反對(duì) 回復(fù) 2019-11-28
  • 3 回答
  • 0 關(guān)注
  • 1770 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)