<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          3000字長文,Pandas美化你的Excel表格!

          共 2523字,需瀏覽 6分鐘

           ·

          2021-10-13 14:53

          大家好,我是寶器!

          Pandas絕對是Python中最好的數(shù)據(jù)分析工具,不接受反駁。

          本文將展示如何美化 Pandas DataFrame 中的數(shù)字,并使用一些更高級的 Pandas 樣式可視化選項,來提高您使用 Pandas 分析數(shù)據(jù)的能力。

          常見的比如說:

          • 在處理貨幣值時使用貨幣符號。例如,如果您的數(shù)據(jù)包含值 25.00,您不會立即知道該值是人民幣、美元、英鎊還是其他某種貨幣。
          • 百分比是另一個有用的示,0.05 或 5%?使用百分比符號可以非常清楚地了解如何解釋數(shù)據(jù)。
          • Pandas 樣式還包括更高級的工具,用于向輸出添加顏色或其他視覺元素。

          案例分析

          本文將使用一個虛擬數(shù)據(jù),為大家進行講解。該數(shù)據(jù)是一個虛構(gòu)組織的2018 年銷售數(shù)據(jù)。

          數(shù)據(jù)集鏈接如下:
          https://www.aliyundrive.com/s/Tu9zBN2x81c

          1. 導入相關(guān)庫,并讀取數(shù)據(jù)

          import?numpy?as?np
          import?pandas?as?pd

          df?=?pd.read_excel('2018_Sales_Total.xlsx')

          效果如下:讀取這些數(shù)據(jù)后,我們可以做一個快速總結(jié),看看客戶從我們這里購買了多少以及他們的平均購買金額是多少。為了簡單起見,我這里截取了前 5 項數(shù)據(jù)。

          df.groupby('name')['ext?price'].agg(['mean',?'sum'])

          結(jié)果如下:

          2. 添加貨幣符號

          當您查看這些數(shù)據(jù)時,理解數(shù)字的比例有點困難,因為您有 6 個小數(shù)點和一些較大的數(shù)字。此外,目前還不清楚這是美元還是其他貨幣。我們可以使用 DataFrame style.format 解決這個問題。

          (df.groupby('name')['ext?price']
          ?.agg(['mean',?'sum'])
          ?.style.format('${0:,.2f}'))

          結(jié)果如下:使用 format 函數(shù),可以在數(shù)據(jù)上使用 python 的字符串格式化工具的所有功能。在這種情況下,我們使用 ${0:,.2f} 放置前導美元符號,添加逗號并將結(jié)果四舍五入到小數(shù)點后兩位。

          例如,如果我們想四舍五入到 0 位小數(shù),我們可以將格式更改為 ${0:,.0f}。

          (df.groupby('name')['ext?price']
          ?.agg(['mean',?'sum'])
          ?.style.format('${0:,.0f}'))

          結(jié)果如下:

          3. 添加百分比

          如果我們想按月查看總銷售額,我們可以使用 grouper 按月匯總,并計算每個月占年總銷售額的百分比。

          monthly_sales?=?df.groupby([pd.Grouper(key='date',?freq='M')])['ext?price'].agg(['sum']).reset_index()
          monthly_sales['pct_of_total']?=?monthly_sales['sum']?/?df['ext?price'].sum()

          結(jié)果如下:為了更加清楚明白的展示這個百分比,我們最好將其轉(zhuǎn)換為百分數(shù)。

          format_dict?=?{'sum':'${0:,.0f}',?'date':?'{:%m-%Y}',?'pct_of_total':?'{:.2%}'}
          monthly_sales.style.format(format_dict).hide_index()

          結(jié)果如下:

          4. 突出顯示數(shù)字

          除了樣式化數(shù)字,我們還可以設(shè)置 DataFrame 中的單元格樣式。讓我們用綠色突出顯示最高的數(shù)字,用彩色突出顯示最高、最低的數(shù)字。

          (monthly_sales
          ?.style
          ?.format(format_dict)
          ?.hide_index()
          ?.highlight_max(color='lightgreen')
          ?.highlight_min(color='#cd4f39'))

          結(jié)果如下:

          5. 設(shè)置漸變色

          另一個有用的函數(shù)是 background_gradient,它可以突出顯示列中的值范圍。

          (monthly_sales.style
          ?.format(format_dict)
          ?.background_gradient(subset=['sum'],?cmap='BuGn'))

          結(jié)果如下:

          6. 設(shè)置數(shù)據(jù)條

          pandas樣式功能還支持在列內(nèi)繪制條形圖。

          (monthly_sales
          ?.style
          ?.format(format_dict)
          ?.hide_index()
          ?.bar(color='#FFA07A',?vmin=100_000,?subset=['sum'],?align='zero')
          ?.bar(color='lightgreen',?vmin=0,?subset=['pct_of_total'],?align='zero')
          ?.set_caption('2018?Sales?Performance'))

          結(jié)果如下:

          7. 繪制迷你圖

          我認為這是一個很酷的功能。

          import?sparklines

          def?sparkline_str(x):
          ????bins=np.histogram(x)[0]
          ????sl?=?''.join(sparklines(bins))
          ????return?sl
          ????
          sparkline_str.__name__?=?"sparkline"
          df.groupby('name')['quantity',?'ext?price'].agg(['mean',?sparkline_str])

          結(jié)果如下:

          ·················END·················

          推薦閱讀

          1. 我在字節(jié)做了哪些事

          2. 寫給所有數(shù)據(jù)人。

          3. 從留存率業(yè)務(wù)案例談0-1的數(shù)據(jù)指標體系

          4. 數(shù)據(jù)分析師的一周

          5. 超級菜鳥如何入門數(shù)據(jù)分析?


          歡迎長按掃碼關(guān)注「數(shù)據(jù)管道」

          瀏覽 98
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲AV综合色区无码国产网站 | 欧美成人一区二区三区电影 | 久久免费高清视 | 国产成人免费 | 天天干天天操天天射 |