Python根据主播直播时间段判定订单销售额归属

写在前面:最近在群里看到一个这样的直播电商的场景觉得还是挺有趣的,于是就想用Python来实现。

需求描述:根据主播直播时间段结合销售订单的付款时间判断所属销售的归属

生成主播在线直播时间段数据

from datetime import datetime, timedelta
import random
import pandas as pd

def generate_live_data(start_time, live_duration, anchors, num_repeats=4):
    """
    生成直播数据。

    参数:
    start_time (datetime): 直播开始时间。
    live_duration (timedelta): 直播时长。
    anchors (list): 主播列表。
    num_repeats (int): 每个主播重复直播的次数,默认为 4。

    返回:
    DataFrame: 包含生成的直播数据的 DataFrame,每行包括开始时间、结束时间和主播。
    """
    live_data = []
    current_time = start_time
    for anchor in anchors:
        for _ in range(num_repeats):  # 每人直播指定次数
            end_time = current_time + live_duration  # 计算直播结束时间
            live_data.append((current_time, end_time, anchor))
            current_time = end_time

    # 将列表转换为 DataFrame
    df = pd.DataFrame(live_data, columns=["Start Time", "End Time", "Anchor"])
    return df

# 定义开始时间
start_time = datetime(2024, 4, 11, 0, 0)  # 2024年4月11日凌晨

# 定义直播时长
live_duration = timedelta(hours=3)  # 每人直播三小时

# 定义主播列表
anchors = ["Anchor 1", "Anchor 2", "Anchor 3", "Anchor 4"]

# 生成直播数据
live_data_df = generate_live_data(start_time, live_duration, anchors)

# 将数据写出到 Excel 文件
excel_file_path = "live_data.xlsx"
live_data_df.to_excel(excel_file_path, index=False)

主播数据展示

在这里插入图片描述

生成销售订单数据

import pandas as pd
from datetime import datetime, timedelta
import random

def generate_purchase_data(start_time, end_time, time_interval, customers, products):
    """
    生成模拟购买数据,并导出到 Excel 文件。

    参数:
    start_time (datetime): 数据开始时间。
    end_time (datetime): 数据结束时间。
    time_interval (timedelta): 时间间隔。
    customers (list): 模拟客户姓名列表。
    products (list): 模拟商品列表。

    返回:
    str: 导出的 Excel 文件路径。
    """
    # 生成时间列表
    time_list = []
    current_time = start_time
    while current_time < end_time:
        time_list.append(current_time)
        current_time += time_interval

    # 生成模拟购买数据
    purchase_data = []
    for time in time_list:
        for customer in customers:
            product = random.choice(products)  # 随机选择一个商品
            quantity = random.randint(1, 5)  # 随机生成购买数量
            purchase_data.append((time, customer, product, quantity))

    # 将购买数据转换为 DataFrame
    df = pd.DataFrame(purchase_data, columns=["Time", "Customer", "Product", "Quantity"])

    # 导出到 Excel 文件
    excel_file = "purchase_data.xlsx"
    df.to_excel(excel_file, index=False)

    return excel_file

# 定义开始时间和结束时间
start_time = datetime(2024, 4, 11, 0, 0)  # 2024年4月11日凌晨
end_time = datetime(2024, 4, 13, 0, 0)    # 2024年4月12日凌晨

# 定义时间间隔
time_interval = timedelta(minutes=30)  # 每隔半小时

# 定义模拟的客户姓名列表和商品列表
customers = ["Alice", "Bob", "Charlie", "David", "Emma"]
products = ["Product A", "Product B", "Product C", "Product D", "Product E"]

# 生成购买数据并导出到 Excel 文件
excel_file_path = generate_purchase_data(start_time, end_time, time_interval, customers, products)

print("数据已成功导出到 Excel 文件:", excel_file_path)

销售订单数据展示

在这里插入图片描述

根据销售数据匹配主播直播时间段并保存到Excel文件

有时候我们需要根据销售数据来匹配主播的直播时间段,以便进行更深入的分析。

1. 导入必要的模块

import pandas as pd
from datetime import datetime

2. 从Excel文件中读取销售数据和主播直播时间数据

# 从Excel文件中读取销售数据
sales_data = pd.read_excel("C:\\Users\\Administrator\\Desktop\\purchase_data.xlsx")

# 将时间列转换为datetime类型
sales_data['Time'] = pd.to_datetime(sales_data['Time'])

# 从Excel文件中读取主播直播时间数据
anchor_time_data = pd.read_excel("C:\\Users\\Administrator\\Desktop\\live_data.xlsx")

# 将时间列转换为datetime类型
anchor_time_data['Start Time'] = pd.to_datetime(anchor_time_data['Start Time'])
anchor_time_data['End Time'] = pd.to_datetime(anchor_time_data['End Time'])

3. 初始化结果列表并遍历销售数据

# 初始化一个空列表,用于存储结果
result = []

# 遍历销售数据,判断每笔销售属于哪个主播的直播时间段
for index, row in sales_data.iterrows():
    sale_time = row['Time']
    customer = row['Customer']
    product = row['Product']
    quantity = row['Quantity']

    # 判断销售时间在哪个主播的直播时间段内
    for _, anchor_row in anchor_time_data.iterrows():
        start_time = anchor_row['Start Time']
        end_time = anchor_row['End Time']
        anchor = anchor_row['Anchor']

        if start_time <= sale_time <= end_time:
            result.append((start_time, end_time, anchor,sale_time, customer, product, quantity))
            break

4. 将结果转换为DataFrame并保存到Excel文件

# 将结果转换为DataFrame
result_df = pd.DataFrame(result, columns=['Start Time', 'End Time', 'Anchor','sale_time', 'Customer', 'Product', 'Quantity'])

# 将结果保存到Excel文件
excel_file_path = "live_data2.xlsx"
result_df.to_excel(excel_file_path, index=False)

5. 完整代码

import pandas as pd
from datetime import datetime

# 从Excel文件中读取销售数据
sales_data = pd.read_excel("C:\\Users\\Administrator\\Desktop\\purchase_data.xlsx")

# 将时间列转换为datetime类型
sales_data['Time'] = pd.to_datetime(sales_data['Time'])

# 从Excel文件中读取主播直播时间数据
anchor_time_data = pd.read_excel("C:\\Users\\Administrator\\Desktop\\live_data.xlsx")

# 将时间列转换为datetime类型
anchor_time_data['Start Time'] = pd.to_datetime(anchor_time_data['Start Time'])
anchor_time_data['End Time'] = pd.to_datetime(anchor_time_data['End Time'])

# 初始化一个空列表,用于存储结果
result = []

# 遍历销售数据,判断每笔销售属于哪个主播的直播时间段
for index, row in sales_data.iterrows():
    sale_time = row['Time']
    customer = row['Customer']
    product = row['Product']
    quantity = row['Quantity']

    # 判断销售时间在哪个主播的直播时间段内
    for _, anchor_row in anchor_time_data.iterrows():
        start_time = anchor_row['Start Time']
        end_time = anchor_row['End Time']
        anchor = anchor_row['Anchor']

        if start_time <= sale_time <= end_time:
            result.append((start_time, end_time, anchor,sale_time, customer, product, quantity))
            break

# 将结果转换为DataFrame
result_df = pd.DataFrame(result, columns=['Start Time', 'End Time', 'Anchor','sale_time', 'Customer', 'Product', 'Quantity'])

# 打印结果
print(result_df)

excel_file_path = "live_data2.xlsx"
result_df.to_excel(excel_file_path, index=False)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/540255.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图片合成二维码怎么实现?图片二维码的生成技巧

图片合成二维码如何制作呢&#xff1f;现在很多的二维码都会提供图片预览的功能&#xff0c;我们可以用手机扫描二维码来查看图片的信息&#xff0c;比如很多的产品信息、旅游攻略、产品海报等等类型经常会制作这种类型的二维码。 其实图片制作二维码的方法很简单&#xff0c;…

自建远程桌面服务器,控制免root安卓手机和pc

RustDesk是一个开源的远程桌面软件&#xff0c;它允许用户通过互联网在不同设备之间共享桌面和控制权限。这款软件以最少的配置提供了自托管和安全保障&#xff0c;是一个类似于TeamViewer的开源替代品​ (RustDesk)​。RustDesk支持在Windows、macOS、Linux、iOS、Android以及…

2023年MathorCup数学建模D题航空安全风险分析和飞行技术评估问题解题全过程文档加程序

2023年第十三届MathorCup高校数学建模挑战赛 D题 航空安全风险分析和飞行技术评估问题 原题再现 飞行安全是民航运输业赖以生存和发展的基础。随着我国民航业的快速发展&#xff0c;针对飞行安全问题的研究显得越来越重要。2022 年 3 月 21 日&#xff0c;“3.21”空难的发生…

基于ES-EKF的LiDAR/GNSS/IMU传感器融合轨迹估计(附项目源码)

基于改进EKF的LiDAR/GNSS/IMU传感器融合轨迹估计&#xff08;附项目源码&#xff09; 算法概述PredictionCorrectionES-EKF算法融合算法实现轨迹估计实验结果 最近在研究传感器融合&#xff0c;看到一个很好的开源项目&#xff0c;适合小白学习&#xff0c;为以后做传感器融合、…

再谈C语言——理解指针(一)

内存和地址 内存 在讲内存和地址之前&#xff0c;我们想有个⽣活中的案例&#xff1a; 假设有⼀栋宿舍楼&#xff0c;把你放在楼⾥&#xff0c;楼上有100个房间&#xff0c;但是房间没有编号&#xff0c;你的⼀个朋友来找你玩&#xff0c; 如果想找到你&#xff0c;就得挨个房…

Vue 移动端(H5)项目怎么实现页面缓存(即列表页面进入详情返回后列表页面缓存且还原页面滚动条位置)keep-alive缓存及清除keep-alive缓存

一、需求 产品要求&#xff1a;Vue移动端项目进入列表页&#xff0c;列表页需要刷新&#xff0c;而从详情页返回列表页&#xff0c;列表页则需要缓存并且还原页面滚动条位置 二、实现思路 1、使用Vue中的keep-alive组件&#xff0c;keep-alive提供了路由缓存功能 2、因为我项…

《黑马点评》Redis高并发项目实战笔记(上)P1~P43

P1 Redis企业实战课程介绍 P2 短信登录 导入黑马点评项目 首先在数据库连接下新建一个数据库hmdp&#xff0c;然后右键hmdp下的表&#xff0c;选择运行SQL文件&#xff0c;然后指定运行文件hmdp.sql即可&#xff08;建议MySQL的版本在5.7及以上&#xff09;&#xff1a; 下面这…

冲刺2024年思维100春季线上比赛:做做历年思维100真题(附答案)

今天是2024年4月13日&#xff0c;距离2024年春季思维100活动第一阶段的线上比赛4月20日还有7天。今年思维100活动的考试重点是什么呢&#xff1f;虽然主办方未公布&#xff0c;我们可以从历年的思维100真题中来分析和推测&#xff0c;把历年真题和背后的知识点吃透了&#xff0…

宠物领养|基于springboot的宠物领养系统设计与实现(附项目源码+论文)

基于springboot的宠物领养系统设计与实现 目录 一、摘要 二、相关技术 三、系统设计 3.1 整体功能设计图 3.2 功能具体细节设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行…

记录一下如何腾讯云服务器用客户端连MySQL

我一般喜欢用IDEA连数据库&#xff0c;别问我为啥&#xff08;就喜欢用一个软件解决所有问题&#xff09; 当然写SQL语句个人还是觉得sqlyog体验最佳&#xff01;

llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署

文章目录 简介支持的模型列表2. 添加自定义数据集3. lora 微调4. 大模型 lora 权重&#xff0c;部署问题 参考资料 简介 llama-factory SFT系列教程 (一)&#xff0c;大模型 API 部署与使用本文为 llama-factory SFT系列教程的第二篇&#xff1b; 支持的模型列表 模型名模型…

服务器配置环境步骤

1、创建虚拟环境 conda create --name 名字 pythonpython版本号2、进入虚拟环境 conda activate 名字3、确认自己要安装的torch版本和torchvision版本&#xff0c;进入https://pytorch.org/get-started/previous-versions/ 复制相应的命令&#xff0c;运行即可 注&#xff1a…

Visual Studio Code SSH 连接远程服务器

Visual Studio Code通过 SSH 连接远程服务器并实现免密登录&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. **安装插件**&#xff1a;首先&#xff0c;在 VS Code 中安装 "Remote - SSH" 插件。打开 VS Code&#xff0c;点击左侧的扩展图标&#xff0c;搜索…

C++如何排查并发编程死锁问题?

C如何排查并发编程死锁问题&#xff1f; 最近在Apache arrow里面写一个支持并行的算子&#xff1a;nested loop join&#xff0c;然后既然涉及到并行&#xff0c;这里就会遇到大家常说的死锁问题&#xff0c;假设你碰到了死锁问题&#xff0c;如何调试与定位呢&#xff1f; 那这…

最小均方(LMS)自适应滤波算法

1 LMS函数实现 % ----------------------------LMS(Least Mean Squre)算法------------------------------ % % parm: % xn 输入的信号序列 (列向量) % dn 所期望的响应序列 (列向量) % M 滤波器的阶数 (标量) % mu 收敛因子(步长) …

统信UOS(Linux)安装nvm node管理工具

整篇看完再操作&#xff0c;有坑&#xff01;&#xff01; 官网 nvm官网 按照官网方式安装&#xff0c;一直报 错 经过不断研究&#xff0c;正确步骤如下 1、下载安装包 可能因为网络安全不能访问github&#xff0c;我是链接热点下载的 wget https://github.com/nvm-sh/…

Java Maven项目推送到 Maven 中央仓库

准备阶段 namespace 域名认证 当需要在 sonatype 认证 com.xxx命名空间时&#xff0c;需要将 .xxx.com 配置域名解析。 记录类型&#xff1a;TXT 文本内容&#xff1a;验证的 key。 GPG 公私钥生成 GPG 下载地址&#xff1a;https://www.gnupg.org/download/index.html M…

RestTemplate—微服务远程调用—案例解析

简介&#xff1a;总结来说&#xff0c;微服务之间的调用方式有多种&#xff0c;选择哪种方式取决于具体的业务需求、技术栈和架构设计。RESTful API和HTTP客户端是常见的选择&#xff0c;而Feign和Ribbon等辅助库可以简化调用过程。RPC和消息队列适用于特定的场景&#xff0c;如…

单片机方案 发声毛绒小黄鸭

随着科技的不断进步&#xff0c;智能早教已经成为了新时代儿童教育的趋势。智能早教玩具&#xff0c;一款集互动陪伴、启蒙教育、情感培养于一身的高科技产品。它不仅能陪伴孩子成长&#xff0c;还能在游戏中启迪智慧&#xff0c;是家长和孩子的理想选择。 酷得电子方案开发特…

OV通配符证书:安全、便捷的网络认证新选择

OV通配符证书&#xff0c;即组织验证型通配符证书&#xff0c;其最大特点在于其通配符功能。这意味着&#xff0c;一个OV通配符证书可以覆盖同一主域名下的多个子域名&#xff0c;大大简化了证书管理和维护的复杂性。无论是大型企业还是个人网站&#xff0c;都可以通过OV通配符…