读取数据(超市营业额.xlsx)与预处理: a. 读取数据并对数据进行深度复制 b. 数据清洗/预处理:重复值、异常值、缺失值 9) 对数据做分组聚合分析 a. 按姓名分组,观察张三的记录,计算每名营业员的平均营业额 b. 按时段分组,计算每个时间段的总营业额,平均营业额,标准差 10)构建透视表进行分析 a. 构建每个人每天的营业额透视表:姓名,时段,营业额 b. 构建每个人在不同柜台的营业额透视表: 姓名,柜台,营业额 c. 构建每个人在不同时段的营业额透视表:姓名,日期,营业额 d. 用以上透视表绘制折线图/柱状图
时间: 2024-02-01 10:15:17 浏览: 96
超市数据分析.pptx
a. 读取数据并对数据进行深度复制:
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('超市营业额.xlsx')
# 对数据进行深度复制
df_copy = df.copy(deep=True)
```
b. 数据清洗/预处理:重复值、异常值、缺失值:
```python
# 检查重复值
print(df_copy.duplicated().sum())
# 删除重复值
df_copy.drop_duplicates(inplace=True)
# 检查异常值
df_copy.describe()
# 检查缺失值
print(df_copy.isnull().sum())
# 填充缺失值
df_copy.fillna(0, inplace=True)
```
9)对数据做分组聚合分析:
a. 按姓名分组,观察张三的记录,计算每名营业员的平均营业额:
```python
# 按姓名分组
grouped_name = df_copy.groupby('姓名')
# 计算每名营业员的平均营业额
result_a = grouped_name['营业额'].mean()
# 观察张三的记录
print(grouped_name.get_group('张三'))
# 打印结果
print(result_a)
```
b. 按时段分组,计算每个时间段的总营业额,平均营业额,标准差:
```python
# 将时间转换为时段
df_copy['时段'] = df_copy['时间'].dt.hour
# 按时段分组
grouped_hour = df_copy.groupby('时段')
# 计算每个时间段的总营业额、平均营业额、标准差
result_b = grouped_hour['营业额'].agg(['sum', 'mean', 'std'])
# 打印结果
print(result_b)
```
10)构建透视表进行分析:
a. 构建每个人每天的营业额透视表:姓名,时段,营业额
```python
# 构建每个人每天的营业额透视表
pivot_a = pd.pivot_table(df_copy, values='营业额', index=['姓名', '日期'], columns='时段')
# 打印结果
print(pivot_a)
```
b. 构建每个人在不同柜台的营业额透视表:姓名,柜台,营业额
```python
# 构建每个人在不同柜台的营业额透视表
pivot_b = pd.pivot_table(df_copy, values='营业额', index=['姓名'], columns='柜台')
# 打印结果
print(pivot_b)
```
c. 构建每个人在不同时段的营业额透视表:姓名,日期,营业额
```python
# 构建每个人在不同时段的营业额透视表
pivot_c = pd.pivot_table(df_copy, values='营业额', index=['姓名', '日期'], columns='时段')
# 打印结果
print(pivot_c)
```
d. 用以上透视表绘制折线图/柱状图:
```python
import matplotlib.pyplot as plt
# 绘制每个人每天的营业额折线图
pivot_a.plot(kind='line', figsize=(10,6))
plt.title('每个人每天的营业额')
plt.xlabel('时段')
plt.ylabel('营业额')
plt.show()
# 绘制每个人在不同柜台的营业额柱状图
pivot_b.plot(kind='bar', stacked=True, figsize=(10,6))
plt.title('每个人在不同柜台的营业额')
plt.xlabel('姓名')
plt.ylabel('营业额')
plt.show()
# 绘制每个人在不同时段的营业额折线图
pivot_c.plot(kind='line', figsize=(10,6))
plt.title('每个人在不同时段的营业额')
plt.xlabel('日期')
plt.ylabel('营业额')
plt.show()
```
阅读全文