在使用 Excel 中,经常会用到数据透视表。所以在 Python 这里,也简单演示下。

1
2
3
4
5
# 导入包
from pandas import Series,DataFrame
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
1
2
3
4
5
6
# 拿到小费数据集
tips = sns.load_dataset('tips')

# 数据介绍: total_bill列为消费总金额;tip列为小费金额;sex列为顾客性别;smoker列为顾客是否抽烟;day列为消费的星期;time列为聚餐的时间段;size列为聚餐人数
# 查看前5行数据
tips.head()

image.png

数据透视表

1
2
3
# 这里的values值是平均值
piovt_table = tips.pivot_table(values='tip', index='day')
piovt_table

image.png

1
2
3
# 数据标准化
piovt_table = piovt_table.divide(piovt_table.sum(),axis=1)
piovt_table

image.png

数据交叉表

1
2
3
# 数据交叉表,计算每个day分组下,出现的size频率
cross_table = pd.crosstab(index=tips['day'],columns=tips['size'])
cross_table

image.png

1
2
3
# 数据标准化:通过div函数,让分组合计等于1,用来看每个分组占比
df = cross_table.div(cross_table.sum(1),axis=0)
df

image.png

1
2
# 使用堆积图来看聚餐比例情况,堆积图用来显示每个分组下面数据的比例
df.plot(kind='bar',stacked=True)

output_8_1.png