使用Python处理Excel中一对多匹配关系

news/2024/7/21 5:51:13 标签: python, excel, 开发语言
import pandas as pd

df = pd.read_excel(r'C:\Users\wangkejun\Desktop\1.xls')

# 提取一一对应的数据
sku_list = []
channel_list = []

for sku, channel in zip(df['XXX'], df['XXXX']):
    if pd.isna(channel):  # 判断是否为缺失值
        continue  # 是缺失值则跳过该行数据

    if ',' in str(sku):  # 将sku转换为字符串类型
        sku_items = str(sku).split(',')
        channel_items = channel.split(',')

        # 处理长度不一致的情况
        min_len = min(len(sku_items), len(channel_items))
        sku_list.extend(sku_items[:min_len])
        channel_list.extend(channel_items[:min_len])

# 创建新的DataFrame
new_df = pd.DataFrame({
    'XXX': sku_list,
    'XXXX': channel_list
})

new_df.to_excel(r'C:\Users\wangkejun\Desktop\1.xlsx')

原数据 

结果 

  • 使用zip()函数将两列数据进行逐行遍历,sku和channel分别对应每一行的"XXXX"和"XXXX";
  • 判断channel是否为缺失值,如果是则跳过该行数据,不做处理;
  • 如果sku中包含逗号(,),则说明一个发货单中有多个产品,需要将sku和channel分别按照逗号进行拆分;
  • 处理长度不一致的情况,将sku和channel的长度取最小值,只保留相同数量的数据,并将其分别存入sku_list和channel_list中。

http://www.niftyadmin.cn/n/5265636.html

相关文章

UDS DTC老化机制

文章目录 简介基本概念1、操作周期(Operation Cyle)2、错误计数(FDC, Fault Detection Counter)3、确认阈值(Confirmation Threshold)4、老化计数(Aging Counter)5、老化阈值(Aging Threshold) 老化条件非排放 DTC 示例参考 简介 当某个DTC在一定次数的操作循环内,…

十五、YARN辅助架构

1、学习内容 (1)了解什么是代理服务器 (2)了解什么是历史服务器 2、辅助架构 (1)辅助架构的由来 对于YARN架构来讲,除了ResourceManager集群资源总管家、NodeManager单机资源管家两个核心角…

电子学会C/C++编程等级考试2021年03月(六级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:生日相同 2.0 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。 时间限制:1000 内存限制:65536输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每…

收发货拥抱新技术,纵行科技推ZETag方案实现更精准的自动识别

对于制造及物流企业来说,收发货是影响其运营效率和成本控制的关键因素。然而传统的收发货管理高度依赖人工核对,比如目前国内汽车工厂零件到货验收主要采用人工方式,验收人员需根据送货看板进行数量清点,确认无误后用手持终端扫描…

NYX靶场

信息收集 # Nmap 7.94 scan initiated Fri Nov 24 21:59:30 2023 as: nmap -sn -oN live.nmap 192.168.182.0/24 Nmap scan report for 192.168.182.1 (192.168.182.1) Host is up (0.00044s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168…

Git 硬重置之后恢复历史提交版本

****硬重置之前一定要备份分支呀,谨慎使用硬重置,特别是很多人一起使用的分支**** 如果你在reset的时候选择了Hard选项,也就是硬重置 重置完且push过,那么被你本地和远端后面的提交记录肯定就会被抹去。 解决办法: …

安卓版pytCharm怎么启动,安卓版手游免费下载

大家好,给大家分享一下安卓版python编辑器安装tkinter,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 我的GitHub 是的,Python 代码可以在 Android 平台上运行,尽管这并不是 Python 传统上最常用的运行环…

基于JavaWeb+SSM+Vue微信小程序的移动学习平台系统的设计和实现

基于JavaWebSSMVue微信小程序的移动学习平台系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 2 第2章 开发环…