题解 | #运动会各项目报名透视表#
运动会各项目报名透视表
https://www.nowcoder.com/practice/dc8ea5c6572243d1a38c907d115cfb47
import pandas as pd df1 = pd.read_csv('items.csv') df2 = pd.read_csv('signup.csv') df3 = pd.merge(df1,df2,how='inner',on='item_id') pivot_tb = df3.pivot_table(values=['employee_id'],index=['sex','department'],columns='item_name',aggfunc='count',fill_value=0) print(pivot_tb)
- data:待操作的 DataFrame
- values:被聚合操作的列,可选项
- index:行分组键,作为结果 DataFrame 的行索引
- columns:列分组键,作为结果 DataFrame 的列索引
- aggfunc:聚合函数/函数列表,默认 numpy.mean 这里要注意如果 aggfunc 中存在函数列表,则返回的 DataFrame 中会显示函数名称
- fill_value:默认 None,可设定缺省值
- dropna:默认 True,如果列的所有值都是 NaN,将被删除;False 则保留
- margins:默认 False,设置为 True 可以添加行/列的总计
- margins_name:默认显示 'ALL',当 margins = True 时,可以设定 margins 行/列的名称
values=['employee_id']和values='employee_id'的区别:values=['employee_id'] 表示要对
'employee_id'这一列进行聚合。由于它是一个列表(尽管只有一个元素),这意味着
pivot_table函数会期望
df3中有多列与
'employee_id'`相对应,并尝试对所有这些列进行聚合。values='employee_id',则明确指定了只对
'employee_id'`这一列进行聚合,不会显示'employee_id'。