pandas 学习 —— pivot table

0. DataFrame 的 index、columns、values

>> df = pd.DataFrame(np.arange(6).reshape(3, 2), index=['one', 'two', 'three'], columns=['a', 'b'])
>> df
       a  b
one    0  1
two    2  3
three  4  5

>> df.index
Index(['one', 'two', 'three'], dtype='object')

>> df.columns
Index(['a', 'b'], dtype='object')

>> df.values
array([[0, 1],
       [2, 3],
       [4, 5]])

1. 认识 pivot table

>> df = pd.DataFrame({'foo': ['one','one','one','two','two','two'],
                       'bar': ['A', 'B', 'C', 'A', 'B', 'C'],
                       'baz': [1, 2, 3, 4, 5, 6]})
        # 通过字典的方式构造 DataFrame
>> df
  bar  baz  foo
0   A    1  one
1   B    2  one
2   C    3  one
3   A    4  two
4   B    5  two
5   C    6  two

>> df.pivot(index='foo', columns='bar', values='baz')
bar  A  B  C
foo
one  1  2  3
two  4  5  6

>> df.pivot(index='bar', columns='foo', values='baz')
foo  one  two
bar
A      1    4
B      2    5
C      3    6

可见 pivot 是对原始 dataframe 展示样式的重新组织和排列。

`pivot_table`是pandas中用于创建透视表的函数,它可以根据一个或多个键对数据进行分组,并且可以对分组后的数据进行聚合计算。pivot_table的语法如下: ```python DataFrame.pivot_table(values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True) ``` 参数说明: - `values`:可选,要汇总的列,默认为所有数值型列。 - `index`:可选,行分组列。 - `columns`:可选,列分组列。 - `aggfunc`:可选,对数据进行聚合计算的函数,默认为平均值。 - `fill_value`:可选,用于替换缺失值的值。 - `margins`:可选,添加行/列总计,默认为False。 - `dropna`:可选,是否删除含有缺失值的行/列,默认为True。 下面是一个例子: ```python import pandas as pd import numpy as np # 创建一个示例DataFrame df = pd.DataFrame({'A': ['foo', 'foo', 'bar', 'bar', 'foo', 'foo'], 'B': ['one', 'two', 'one', 'two', 'one', 'two'], 'C': np.random.randn(6), 'D': np.random.randn(6)}) # 使用pivot_table函数创建透视表 table = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'], aggfunc=np.sum) print(table) ``` 上述代码将创建一个DataFrame,并使用pivot_table函数创建一个透视表。透视表将按照'A'和'B'列进行分组,并且对'D'列的值进行求和计算。'C'列的值将用作列索引。输出的结果将是一个新的DataFrame,其中行是'A'和'B'列的组合,列是'C'列的不同值,单元格中的值是'D'列的聚合值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值