pandas 实现Excel透视表功能
pivot_table透视表
pivot_table(df,index,columns,values,aggfunc=‘mean’,fill_value=None,margins=False,dropna=True,margins_name=‘All’)
- index 行 columns 列 aggfunc values 值 aggfunc(计算值的公式 sum min 等)
- fill_value Na值默认None,可自定义
- margins 合计值,默认名称为all 可自定义
- margins_name 自定义合计的名称
- 可以对透视表进行美化reset_index 可以将数据还原回数据框 (函数左右 df.reset_index()重置索引)
例:
在pandas中,可以使用pivot_table函数来实现excel透视表的功能。
首先,导入pandas库:
import pandas as pd
然后,创建一个DataFrame对象,作为数据源:
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'Gender': ['Female', 'Male', 'Male', 'Male', 'Female'],
'Age': [25, 30, 35, 40, 45],
'City': ['Beijing', 'Shanghai', 'Beijing', 'Shanghai', 'Beijing'],
'Salary': [5000, 6000, 7000, 8000, 9000]}
df = pd.DataFrame(data)
接下来,使用pivot_table函数进行透视操作:
结算每个城市不同性别的平均收入
pivot_table = df.pivot_table(index='City', columns='Gender', values='Salary', aggfunc='mean')
可以使用reset_index进行美化:
pivot_table = df.pivot_table(index='City', columns='Gender', values='Salary', aggfunc='mean').reset_index()
fill_value和margins的使用:
fill_value=0,nan值变成0,汇总margins=1打开,定义名称为平均
pivot_table = df.pivot_table(index='City', columns='Gender', values='Salary', aggfunc='mean',fill_value=0,margins=1,margins_name='平均').reset_index()