日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

python 用 pandas 实现数据透视表功能详解

發布時間:2023/12/15 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 python 用 pandas 实现数据透视表功能详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

透視表是一種可以對數據動態排布并且分類匯總的表格格式。對于熟練使用 excel 的伙伴來說,一定很是親切!

pd.pivot_table() 語法:

pivot_table(data,    # DataFrame
            values=None,    # 值
            index=None,    # 分類匯總依據
            columns=None,    # 列
            aggfunc='mean',    # 聚合函數
            fill_value=None,    # 對缺失值的填充
            margins=False,    # 是否啟用總計行/列
            dropna=True,    # 刪除缺失
            margins_name='All'   # 總計行/列的名稱
           )

1、銷量數據的透視

1.1 讀入數據

import os
import numpy as np
import pandas as pd

file_name = os.path.join(path, 'Excel_test.xls')
df = pd.read_excel(io=file_name,    # 工作簿路徑
                   sheetname='透視表',    # 工作表名稱
                   skiprows=1,    # 要忽略的行數
                   parse_cols='A:D'    # 讀入的列
                  )
df

1.2 數據透視

# 透視數據
df_p = df.pivot_table(index='客戶名稱',    # 透視的行,分組依據
                      values='銷量',    # 值
                      aggfunc='sum'    # 聚合函數
                     )
# 對透視表進行降序排列
df_p = df_p.sort_values(by='銷量',    # 排序依據
                        ascending=False    # 是否升序排列
                       )
# 設置數值格式
df_p = df_p.round({'銷量': 0}).astype('int')

# 添加列
ks = df_p['銷量']//100
df_p['重要程度'] =  ['★'*k for k in ks]
df_p

1.3 重新設置圖示表的索引

df_p['客戶名稱'] = df_p.index
df_p.set_index(keys=['重要程度', '客戶名稱'])

注:以上操作從理論和實踐方面看都沒什么問題,但模仿 excel 的痕跡濃重了些,更 python 的操作是用 groupby-applay 的方法。

2 用 分組聚合 實現數據透視

grouped = df.groupby(by='客戶名稱')
grouped['銷量'].agg('sum')

2.2 實現目標格式的透視表

# 分類匯總
df_p = df.groupby(by='客戶名稱'    # 分類
                 ).agg('sum'    # 匯總
                      ).sort_values(by='銷量', ascending=False    # 排序
                                   ).round({'銷量': 0}    # 設置精度
                                          ).astype('int')    # 數據類型轉換

# 添加列
ks = df_p['銷量']//100
df_p['重要程度'] =  ['★'*k for k in ks]
df_p['客戶名稱'] = df_p.index
# 層次索引
df_p.set_index(keys=['重要程度', '客戶名稱'])

軟件信息:

總結

以上是生活随笔為你收集整理的python 用 pandas 实现数据透视表功能详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。