翻译 可视化:python数据透视表 pandas.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。

附:pandas.pivot_table(data, 其余参数部分) 等价于 data.pivot(其余参数部分)

values:等价于Excel透视表的"值"部分;

index:等价于Excel透视表的"行"部分;

columns:等价于Excel透视表的"列"部分;

aggfunc:设定数据区的数据显示方式,如aggfunc=np.sum;

附:最终table意义上,它等价于aggfunc=sum ,  aggfunc=np.mean 等价于 aggfunc=mean

附:多函数形式,比如values=['income', 'click']之后,aggfunc={'income: np.sum, 'click':[np.mean, min, max]}

二、多功能参数

fill_value:设定替换缺失值的值,默认不替换缺失值;

dropna:设定是否使用有空值(即NaN)的columns,默认不使用即dropna=True,想使用有空值的columns设定dropna=False

margins:设定是否对各行和各列进行汇总,默认不汇总即margins=False,想添加行&列汇总margins=True

margins_name:margins=True时,设定行&列的名称;

三、例子

数据表DataFrame

df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
                          "bar", "bar", "bar", "bar"],
                   "B": ["one", "one", "one", "two", "two",
                          "one", "one", "two", "two"],
                   "C": ["small", "large", "large", "small",
                         "small", "large", "small", "small",
                          "large"],
                   "D": [1, 2, 2, 3, 3, 4, 5, 6, 7]})
print(df)

# 结果如下
     A    B      C  D
0  foo  one  small  1
1  foo  one  large  2
2  foo  one  large  2
3  foo  two  small  3
4  foo  two  small  3
5  bar  one  large  4
6  bar  one  small  5
7  bar  two  small  6
8  bar  two  large  7

透视函数:

table = pivot_table(df, 
                    values=['D', 'E'],
                    index=['A', 'C'],
                    aggfunc={'D': np.mean,
                             'E': [min, max, np.mean]})
print(table)

透视表:

>>> table
                  D            E
               mean        max median min
A     C
bar large  5.500000  16    14.5    13
      small  5.500000  15    14.5    14
foo large  2.000000  10      9.5       9
      small  2.333333  12    11.0       8

附:输出为csv文件代码:

table.to_csv('path:filename.csv', encoding='gbk') # 注意, index不要设为False

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值