数据透视表

使用 pandas 进行数据处理

Maggie Matsui

Senior Content Developer at DataCamp

从分组到透视表

dogs.groupby("color")["weight_kg"].mean()
color
Black    26
Brown    24
Gray     17
Tan       2
White    74
Name: weight_kg, dtype: int64
dogs.pivot_table(values="weight_kg", 
                 index="color")
       weight_kg
color           
Black       26.5
Brown       24.0
Gray        17.0
Tan          2.0
White       74.0
使用 pandas 进行数据处理

不同统计量

dogs.pivot_table(values="weight_kg", index="color", aggfunc="median")
       weight_kg
color           
Black       26.5
Brown       24.0
Gray        17.0
Tan          2.0
White       74.0
使用 pandas 进行数据处理

多种统计量

dogs.pivot_table(values="weight_kg", index="color", aggfunc=["mean", "median"])
           mean    median
      weight_kg weight_kg
color                    
Black      26.5      26.5
Brown      24.0      24.0
Gray       17.0      17.0
Tan         2.0       2.0
White      74.0      74.0
使用 pandas 进行数据处理

按两个变量透视

dogs.groupby(["color", "breed"])["weight_kg"].mean()
dogs.pivot_table(values="weight_kg", index="color", columns="breed")
breed  Chihuahua  Chow Chow  Labrador  Poodle  Schnauzer  St. Bernard
color                                                                
Black        NaN        NaN      29.0    24.0        NaN          NaN
Brown        NaN       24.0      24.0     NaN        NaN          NaN
Gray         NaN        NaN       NaN     NaN       17.0          NaN
Tan          2.0        NaN       NaN     NaN        NaN          NaN
White        NaN        NaN       NaN     NaN        NaN         74.0
使用 pandas 进行数据处理

在透视表中填充缺失值

dogs.pivot_table(values="weight_kg", index="color", columns="breed", fill_value=0)
breed  Chihuahua  Chow Chow  Labrador  Poodle  Schnauzer  St. Bernard
color                                                                
Black          0          0        29      24          0            0
Brown          0         24        24       0          0            0
Gray           0          0         0       0         17            0
Tan            2          0         0       0          0            0
White          0          0         0       0          0           74
使用 pandas 进行数据处理

透视表求和

dogs.pivot_table(values="weight_kg", index="color", columns="breed", 
                 fill_value=0, margins=True)
breed  Chihuahua  Chow Chow  Labrador  Poodle  Schnauzer  St. Bernard        All
color                                                                           
Black          0          0        29      24          0            0  26.500000
Brown          0         24        24       0          0            0  24.000000
Gray           0          0         0       0         17            0  17.000000
Tan            2          0         0       0          0            0   2.000000
White          0          0         0       0          0           74  74.000000
All            2         24        26      24         17           74  27.714286
使用 pandas 进行数据处理

让我们来练习!

使用 pandas 进行数据处理

Preparing Video For Download...