Python pandas中数据透视图Pivot Tables的使用

数据透视图有过Excel使用经验可以发现差别不大,本质上就是选取行变量、列变量、值,例子如下:

df
Out[102]: 
        A  B    C         D         E
0     one  A  foo -1.202872  0.047609
1     one  B  foo -1.814470 -0.136473
2     two  C  foo  1.018601 -0.561757
3   three  A  bar -0.595447 -1.623033
4     one  B  bar  1.395433  0.029399
5     one  C  bar -0.392670 -0.542108
6     two  A  foo  0.007207  0.282696
7   three  B  foo  1.928123 -0.087302
8     one  C  foo -0.055224 -1.575170
9     one  A  bar  2.395985  1.771208
10    two  B  bar  1.552825  0.816482
11  three  C  bar  0.166599  1.100230

pd.pivot_table(df, values="D", index=["A", "B"], columns=["C"])
Out[103]: 
C             bar       foo
A     B                    
one   A  2.395985 -1.202872
      B  1.395433 -1.814470
      C -0.392670 -0.055224
three A -0.595447       NaN
      B       NaN  1.928123
      C  0.166599       NaN
two   A       NaN  0.007207
      B  1.552825       NaN
      C       NaN  1.018601

Python,可以使用pandas库的pivot_table函数来实现数据透视表的功能[^1][^1]。pivot_table函数的基本语法如下: ```python pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False) ``` 其,参数说明如下: - data:要进行数据透视的数据集。 - values:要聚合的列名。 - index:作为行索引的列名。 - columns:作为列索引的列名。 - aggfunc:聚合函数,默认为'mean',表示计算均值。 - fill_value:用于填充缺失值的值。 - margins:是否显示行和列的汇总,默认为False。 - dropna:是否删除包含缺失值的行,默认为True。 - margins_name:汇总行和列的名称,默认为'All'。 - observed:是否观察到所有的值,默认为False。 下面是一个示例,演示如何使用pivot_table函数进行数据透视表操作: ```python import pandas as pd # 创建示例数据集 data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'], 'City': ['New York', 'London', 'Paris', 'New York', 'London', 'Paris'], 'Salary': [5000, 6000, 7000, 5500, 6500, 7500]} df = pd.DataFrame(data) # 使用pivot_table函数进行数据透视 pivot_table = pd.pivot_table(df, values='Salary', index='Name', columns='City', aggfunc='mean') print(pivot_table) ``` 运行以上代码,将会输出以下结果: ``` City London New York Paris Name Alice NaN 5250.0 NaN Bob 6250.0 NaN NaN Charlie NaN NaN 7250.0 ``` 这个结果展示了根据姓名和城市对薪水进行了聚合,并以姓名作为行索引,以城市作为列索引的数据透视表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值