超市营业额数据分析-Part II: 8) 读取数据(超市营业额.xlsx)与预处理: a. 读取数据并对数据进行深度复制 b. 数据清洗/预处理:重复值、异常值、缺失值 9) 对数据做分组聚合分析 a. 按姓名分组,观察张三的记录,计算每名营业员的平均营业额 b. 按时段分组,计算每个时间段的总营业额,平均营业额,标准差 10)构建透视表进行分析 a. 构建每个人每天的营业额透视表:姓名,时段,营业额 b. 构建每个人在不同柜台的营业额透视表: 姓名,柜台,营业额 c. 构建每个人在不同时段的营业额透视表:姓名,日期,营业额 d. 用以上透视表绘制折线图/柱状图
时间: 2024-02-01 12:14:55 浏览: 150
8超市数据分析.pptx
8)读取数据(超市营业额.xlsx)与预处理:
a. 读取数据并对数据进行深度复制
首先,我们需要导入 pandas 模块并读取数据。同时,为了避免改变原始数据,我们需要对数据进行深度复制。
```python
import pandas as pd
# 读取数据
df = pd.read_excel('超市营业额.xlsx')
# 对数据进行深度复制
data = df.copy(deep=True)
```
b. 数据清洗/预处理:重复值、异常值、缺失值
在进行数据分析之前,我们需要对数据进行清洗和预处理,包括删除重复值、处理异常值和缺失值等。
```python
# 删除重复值
data.drop_duplicates(inplace=True)
# 处理异常值,将小于0的值替换为NaN
data.loc[data['营业额'] < 0, '营业额'] = None
# 处理缺失值,使用前一行的值进行填充
data.fillna(method='ffill', inplace=True)
```
9)对数据做分组聚合分析
a. 按姓名分组,观察张三的记录,计算每名营业员的平均营业额
```python
# 按姓名分组,计算每个人的平均营业额
group_by_name = data.groupby('姓名').mean()['营业额']
# 观察张三的记录
zhangsan = data[data['姓名'] == '张三']
# 输出结果
print('每名营业员的平均营业额:\n', group_by_name)
print('\n张三的记录:\n', zhangsan)
```
b. 按时段分组,计算每个时间段的总营业额,平均营业额,标准差
```python
# 按时段分组,计算每个时间段的总营业额、平均营业额和标准差
group_by_time = data.groupby('时段')['营业额'].agg(['sum', 'mean', 'std'])
# 输出结果
print('每个时间段的统计信息:\n', group_by_time)
```
10)构建透视表进行分析
a. 构建每个人每天的营业额透视表:姓名,时段,营业额
```python
# 构建透视表
pivot_table_by_name_and_date = pd.pivot_table(
data, values='营业额', index=['姓名', '日期'], columns=['时段'], aggfunc='sum')
# 输出结果
print('每个人每天的营业额透视表:\n', pivot_table_by_name_and_date)
```
b. 构建每个人在不同柜台的营业额透视表:姓名,柜台,营业额
```python
# 构建透视表
pivot_table_by_name_and_counter = pd.pivot_table(
data, values='营业额', index=['姓名'], columns=['柜台'], aggfunc='sum')
# 输出结果
print('每个人在不同柜台的营业额透视表:\n', pivot_table_by_name_and_counter)
```
c. 构建每个人在不同时段的营业额透视表:姓名,日期,营业额
```python
# 构建透视表
pivot_table_by_name_and_time = pd.pivot_table(
data, values='营业额', index=['姓名', '日期'], columns=['时段'], aggfunc='sum')
# 输出结果
print('每个人在不同时段的营业额透视表:\n', pivot_table_by_name_and_time)
```
d. 用以上透视表绘制折线图/柱状图
我们可以使用 matplotlib 和 pandas 内置的绘图函数来绘制折线图或柱状图,从而更加直观地展示数据。
```python
import matplotlib.pyplot as plt
# 绘制每个人每天的营业额折线图
pivot_table_by_name_and_date.plot(kind='line')
plt.show()
# 绘制每个人在不同柜台的营业额柱状图
pivot_table_by_name_and_counter.plot(kind='bar')
plt.show()
# 绘制每个人在不同时段的营业额折线图
pivot_table_by_name_and_time.plot(kind='line')
plt.show()
```
阅读全文