jupyter notebook新增一列订单日期 ,将订单日期转化为精度为月份的数据列astype('datetime64[M]') ,筛选没有退款的订单, 按月份统计产品购买数量,消费金额,消费次数,消费人数 ,绘图操作(四个图,同一画布) # 每月产品购买数量 #多个绘图,两行两列 占据第一个位置 # 默认折线图 #设置图像标题为每月的产品购买数量 # 每月产品消费金额 #两行两列 占据第二个位置 # 默认折线图 # 每月产品消费次数 # 每月产品消费人数 同上,
时间: 2024-03-27 11:35:42 浏览: 25
好的,我已经明白您的要求了。下面是代码实现:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv("data.csv")
# 新增订单日期列并转换为月份精度
data["订单日期"] = pd.to_datetime(data["订单日期"])
data["订单月份"] = data["订单日期"].astype("datetime64[M]")
# 筛选没有退款的订单
data = data[data["是否退款"] == "否"]
# 按月份统计产品购买数量、消费金额、消费次数、消费人数
grouped = data.groupby("订单月份").agg({"产品数量": "sum", "实付金额": "sum", "订单ID": "count", "买家ID": "nunique"})
grouped.columns = ["产品购买数量", "消费金额", "消费次数", "消费人数"]
# 绘制每月产品购买数量折线图
plt.subplot(2, 2, 1)
plt.plot(grouped.index, grouped["产品购买数量"])
plt.title("每月产品购买数量")
# 绘制每月产品消费金额折线图
plt.subplot(2, 2, 2)
plt.plot(grouped.index, grouped["消费金额"])
plt.title("每月产品消费金额")
# 绘制每月产品消费次数折线图
plt.subplot(2, 2, 3)
plt.plot(grouped.index, grouped["消费次数"])
plt.title("每月产品消费次数")
# 绘制每月产品消费人数折线图
plt.subplot(2, 2, 4)
plt.plot(grouped.index, grouped["消费人数"])
plt.title("每月产品消费人数")
# 显示图像
plt.tight_layout()
plt.show()
```
解释一下上面的代码:
1. 首先读取了一个名为 `data.csv` 的数据文件。
2. 接着新增了一个名为 `订单日期` 的列,并将其转换为月份精度。
3. 筛选了没有退款的订单。
4. 使用 `groupby()` 方法按月份统计了产品购买数量、消费金额、消费次数、消费人数。
5. 使用 `subplot()` 方法将四个图像绘制在同一个画布上,并设置其位置。
6. 最后使用 `tight_layout()` 方法调整画布布局,并使用 `show()` 方法显示图像。
希望这个代码对您有所帮助!