6.27实训读取修改数据python

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv(r'C:\Users\XXGC\Desktop\shiuxun3.csv')
#print(data)
data.dropna(inplace=True)
plt.rcParams['font.sans-serif']=['SimHei']

# 查看数据
print(data.head())
# 处理缺失值
data = data.dropna()
# 处理重复值
data = data.drop_duplicates()
# 处理异常值
# 假设订单金额小于 0 或大于 10000 为异常值
data = data[(data['总金额'] >= 0) & (data['总金额'] <= 10000)]
# 查看处理后的数据
print(data.head())

# 1. 整体购物情况与总销售情况
order_count = data.shape[0]
total_sales = data['总金额'].sum()
buyer_paid_amount = data['买家实际支付金额'].sum()


# 将订单创建时间转换为 datetime 类型
data["订单创建时间"] = pd.to_datetime(data["订单创建时间"])
# 提取小时信息
data["小时"] = data["订单创建时间"].dt.hour
# 订单量
order_count = data.shape[0]
# 销售额
total_sales = data['总金额'].sum()
# 计算每个小时的订单数量
hourly_orders = data.groupby("小时")["订单编号"].count()
# 绘制折线图
plt.figure(figsize=(12, 6))
plt.plot(hourly_orders.index, hourly_orders.values)
plt.xlabel("小时")
plt.ylabel("订单数量")
plt.title("订单数量随时间的变化(小时维度)")
plt.xticks(range(0, 24, 2))
plt.grid(True)
plt.show()
# 数据分析
paid_amount = data[data['买家实际支付金额'] > 0]['买家实际支付金额'].sum()
print("已付款金额:", paid_amount)
unpaid_amount = data[data['买家实际支付金额'] == 0]['总金额'].sum()
print("未付款金额:", unpaid_amount)
print("总金额:", total_sales)
# 1. 订单数量最多的小时
max_hour = hourly_orders.idxmax()
max_orders = hourly_orders.max()
print("订单数量最多的小时是:{} 点,订单数量为:{}".format(max_hour, max_orders))
# 2. 总订单数量
total_orders = data["订单编号"].count()
print("总订单数量为:{}".format(total_orders))
# 3. 平均订单金额
average_amount = data["总金额"].mean()
print("平均订单金额为:{:.2f}".format(average_amount))
# 4. 退款订单数量和退款金额
refund_orders = data[data["退款金额"] > 0]
refund_orders_count = refund_orders.shape[0]
refund_amount = refund_orders["退款金额"].sum()
print("退款订单数量为:{},退款金额为:{:.2f}".format(refund_orders_count,
                                       refund_amount))
# 3. 订单金额分布情况
plt.hist(data['总金额'], bins=20, edgecolor='black')
plt.xlabel('订单金额')
plt.ylabel('订单数量')
plt.title('订单金额分布情况')
plt.show()

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值