溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么使用 pivot_table()實現數據透視功能

發布時間:2021-07-05 16:04:03 來源:億速云 閱讀:421 作者:Leah 欄目:大數據

Python中怎么使用 pivot_table()實現數據透視功能

在數據分析和處理過程中,數據透視表(Pivot Table)是一種非常強大的工具,它可以幫助我們快速地對數據進行匯總、分析和展示。Python中的pandas庫提供了pivot_table()函數,可以方便地實現數據透視功能。本文將詳細介紹如何使用pivot_table()函數來實現數據透視功能。

1. 什么是數據透視表?

數據透視表是一種交互式的表格,可以對大量數據進行快速匯總和分析。它允許用戶通過拖放字段來重新排列和匯總數據,從而生成不同的視圖。數據透視表通常用于數據分析、報表生成和數據可視化等場景。

2. pivot_table()函數的基本用法

pandas庫中的pivot_table()函數用于創建數據透視表。它的基本語法如下:

pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

參數說明:

  • data: 要處理的數據框(DataFrame)。
  • values: 需要聚合的列名或列名列表。
  • index: 用于分組的列名或列名列表,這些列將作為透視表的行索引。
  • columns: 用于分組的列名或列名列表,這些列將作為透視表的列索引。
  • aggfunc: 聚合函數,默認為'mean',可以是'sum'、'count'、'min'、'max'等,也可以是自定義函數。
  • fill_value: 用于替換缺失值的值。
  • margins: 是否添加總計行/列,默認為False。
  • dropna: 是否刪除包含缺失值的行/列,默認為True。
  • margins_name: 總計行/列的名稱,默認為'All'。

3. 使用pivot_table()實現數據透視功能

3.1 創建示例數據

首先,我們創建一個示例數據框來演示如何使用pivot_table()函數。

import pandas as pd

data = {
    'Date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02', '2023-01-03', '2023-01-03'],
    'City': ['New York', 'Los Angeles', 'New York', 'Los Angeles', 'New York', 'Los Angeles'],
    'Temperature': [32, 75, 30, 77, 28, 80],
    'Humidity': [80, 50, 85, 45, 90, 40]
}

df = pd.DataFrame(data)
print(df)

輸出結果:

         Date         City  Temperature  Humidity
0  2023-01-01     New York           32        80
1  2023-01-01  Los Angeles           75        50
2  2023-01-02     New York           30        85
3  2023-01-02  Los Angeles           77        45
4  2023-01-03     New York           28        90
5  2023-01-03  Los Angeles           80        40

3.2 基本數據透視表

假設我們想要按城市和日期對溫度進行匯總,可以使用以下代碼:

pivot = pd.pivot_table(df, values='Temperature', index='Date', columns='City', aggfunc='mean')
print(pivot)

輸出結果:

City        Los Angeles  New York
Date                              
2023-01-01           75        32
2023-01-02           77        30
2023-01-03           80        28

在這個例子中,values='Temperature'表示我們要對溫度進行匯總,index='Date'表示按日期分組,columns='City'表示按城市分組,aggfunc='mean'表示使用平均值進行聚合。

3.3 多列聚合

如果我們想要同時對溫度和濕度進行匯總,可以將values參數設置為一個列表:

pivot = pd.pivot_table(df, values=['Temperature', 'Humidity'], index='Date', columns='City', aggfunc='mean')
print(pivot)

輸出結果:

           Humidity              Temperature          
City        Los Angeles New York Los Angeles New York
Date                                                 
2023-01-01          50       80          75       32
2023-01-02          45       85          77       30
2023-01-03          40       90          80       28

3.4 使用不同的聚合函數

aggfunc參數可以接受多個聚合函數。例如,我們可以同時計算溫度和濕度的平均值和最大值:

pivot = pd.pivot_table(df, values=['Temperature', 'Humidity'], index='Date', columns='City', aggfunc=['mean', 'max'])
print(pivot)

輸出結果:

                mean                          max                    
           Humidity              Temperature Humidity      Temperature
City        Los Angeles New York Los Angeles New York Los Angeles New York
Date                                                                     
2023-01-01          50       80          75       32          50       80
2023-01-02          45       85          77       30          45       85
2023-01-03          40       90          80       28          40       90

3.5 添加總計行/列

如果我們想要在透視表中添加總計行和總計列,可以將margins參數設置為True

pivot = pd.pivot_table(df, values='Temperature', index='Date', columns='City', aggfunc='mean', margins=True)
print(pivot)

輸出結果:

City        Los Angeles  New York   All
Date                                   
2023-01-01           75        32  53.5
2023-01-02           77        30  53.5
2023-01-03           80        28  54.0
All                  77        30  53.666667

3.6 處理缺失值

如果數據中存在缺失值,可以使用fill_value參數來指定一個值來填充缺失值:

pivot = pd.pivot_table(df, values='Temperature', index='Date', columns='City', aggfunc='mean', fill_value=0)
print(pivot)

4. 總結

pandas庫中的pivot_table()函數是一個非常強大的工具,可以幫助我們快速地對數據進行匯總和分析。通過靈活地使用index、columns、valuesaggfunc等參數,我們可以輕松地生成各種復雜的數據透視表。希望本文的介紹能夠幫助你更好地理解和使用pivot_table()函數。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女