Python解析Excel入库如何做到行的拆分

我们读取解析Excel入库经常会遇到这种场景,那就是行的拆分,如图:

比如我们入库,要以name为主键,可是表格name的值全是以逗号分割的多个,这怎么办呢?这就必须拆成多行了啊。

代码如下:

python 复制代码
from sqlalchemy import create_engine
import numpy as np
import pandas as pd
conn = create_engine("mysql+pymysql://user:pass@host:3306/db")
df = pd.read_excel("test.xlsx")
df.dropna(subset=["name"])    #删除空行
droplist=[]                 #记录带逗号的行号
for i in df.index:          #遍历每一行
  df_line = df.loc[[i]]        #本行
  names = df.loc[i,'name']
  name_list = names.split(',') 
  #逗号分割超过一条,拆成多行
  if(len(name_list)>1):
    droplist.append(i)     #删除原来的行
    for name in name_list:
      name = name.strip()
      df_line.loc[i,'name'] = name   #修改本行的字段值 也就形成了新行
      df = pd.concat([df,line],ignore_index=True)  #拆分的新行附加到最后面
      
df.drop(droplist,axis=0,inplace=True)   #删除原来有逗号的行

这样我们就得到了新的df,已经完成了重组,如图

相关推荐
Michelle80236 小时前
24大数据 16-1 函数复习
python
dagouaofei6 小时前
AI自动生成PPT工具对比分析,效率差距明显
人工智能·python·powerpoint
ku_code_ku6 小时前
python bert_score使用本地模型的方法
开发语言·python·bert
小马哥编程6 小时前
【软考架构】滑动窗口限流算法的原理是什么?
java·开发语言·架构
云栖梦泽7 小时前
鸿蒙数据持久化实战:构建本地存储与云同步系统
开发语言·鸿蒙系统
wjs20247 小时前
《Ionic 侧栏菜单》
开发语言
祁思妙想7 小时前
linux常用命令
开发语言·python
流水落花春去也7 小时前
用yolov8 训练,最后形成训练好的文件。 并且能在后续项目使用
python
Serendipity_Carl7 小时前
数据可视化实战之链家
python·数据可视化·数据清洗
IMPYLH7 小时前
Lua 的 IO (输入/输出)模块
开发语言·笔记·后端·lua