首页 > 其他分享 >盘点一个Excel数据分割和explode()实战问题

盘点一个Excel数据分割和explode()实战问题

时间:2024-01-31 22:27:29浏览次数:36  
标签:df Excel explode 盘点 split str True 数量

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【Jethro Shen】问了一个Pandas数据处理的问题。问题如下:各位大佬这种情况我怎么处理一下啊?标记的商品内容后后面的数量是一一对应的 想把它们铺开。

image.png

下面是他自己写的代码:

jigou_df = pd.read_excel(jigou_path)
data = {'商品内容':jigou_df['商品内容'],'数量':jigou_df['数量']}
df = pd.DataFrame(data)
df_expanded = df.assign(数量=df['数量'].astype(str).str.split(',')).explode('数量')
df_expanded.reset_index(drop=True, inplace=True)
df_expanded

不过运行结果不是他想要的。

二、实现过程

后来【瑜亮老师】给了一个提示:先对两列执行split,然后再对两列explode,df = df.explode(['商品内容', '数量']).reset_index(drop=True)

这里【东哥】给出了具体的代码,如下所示:

import pandas as pd

df = pd.read_excel("机构订单_202401091514_1.0.xlsx")
# 使用split()函数拆分【商品内容】列的内容
df['商品内容'] = df['商品内容'].str.split('、')
df['数量'] = df['数量'].str.split('、')
# 使用explode()函数将拆分后的结果与【数量】列的内容进行合并
result = df.explode(['商品内容', '数量']).reset_index(drop=True)
# result = df.explode('商品内容').reset_index(drop=True)
print(result)

image.png

结果是可以出来的,不过最后两行却是nan,这个是为啥?我看excel中数据类型是数值,不是字符串,得到的结果就是nan。

image.png

如果我把最后两行手动改为字符串格式的话,结果正常显示。

image.png

image.png

后来搞定了,df['数量'] = df['数量'].astype("string").str.split('、'),加一行转字符串就好了。

image.png

顺利地解决了粉丝的问题。也可以读取的时候直接dtype=str这样避免这类的问题,也可以用astype,还可以map的时候lambda中用str(x).split,反正方法很多,都可以避免这类的问题。

image.png

如果你也有类似这种数据分析的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【Jethro Shen】提出的问题,感谢【瑜亮老师】、【东哥】给出的思路,感谢【莫生气】、【冯诚】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

image.png

标签:df,Excel,explode,盘点,split,str,True,数量
From: https://www.cnblogs.com/dcpeng/p/18000243

相关文章

  • [office] 4个超赞的Excel函数技巧,学会了你就更牛逼了!
    分享一波超赞的Excel函数技巧啦,需要的宝宝赶紧拿来!提示:括号中的数据可以根据实际情况而变化1、利用函数批量新建文件夹公式:="MD"&A1首先在A列单元格输入文件夹的名称,并在在B1输入公式:="MD"&A1(注意:MD后面有个空格),然后光标移到B1单元格右下角,当鼠标箭头变成"+"时双击则进行填充,然......
  • [office] 如何理解Excel公式中的各种符号?
    Q:在Excel公式中,我们会使用各种符号连接数字、单元格或函数,从而获得想要的结果,例如,=SQRT((1234-234)/1)^2。能够总结一下这些符号的使用吗?A:下面是Excel公式中使用的常用符号及说明。+–*/基本的算术操作符:加、减、乘、除。例如,1+2,9-6,11*9,63/7,3+5*2%百分数值。例如,4/5%,结果为8。......
  • [office] excel2010工作表的切换与重命名
    在使用excel工作表时,我们可能会对多个工作表进行来回切换查看,今天小编为大家介绍一下如何切换工作表及重命名工作表。一、切换工作表切换工作表主要有两种方法:1、直接使用鼠标对工作表标签sheet进行点击切换;2、使用快捷键,ctrl+pageup和ctrl+pagedown键,可以快速进行工作表切换。二......
  • [office] excel如何加粗表格边框
    excel表格中,表格边框都是细细的,想要进行加粗,应该怎么做呢?下面随小编一起来看看吧。excel加粗表格边框的方法一选中单元格区域,点击“开始”选项卡直接选择边框按钮中的粗匣框线,即可excel加粗表格边框的方法二右击单元格区域,点击“设置单元格格式”切换......
  • seatunnel-2.3.3测试excel入库mysql
    1.背景客户需要excel导入功能,同时支持导入多种数据源,尝试用seatunnel数据集成工具来实现。2.步骤2.1配置文件./config/v2.excel2mysql.configenv{#YoucansetSeaTunnelenvironmentconfigurationhereexecution.parallelism=1job.mode="BATCH"}source......
  • [office] excel表格锁定单元格不滚动的设置方法
    excel表格锁定单元格不滚动的设置方法1.打开需要修改的表格,在表格主页面中找到上方视图选项,点击该选项进入视图页面。2.在视图页面中找到冻结窗格选项,点击该选项进入至冻结窗格页面中。3.在冻结窗格页面中找到冻结首行选项即可固定该表格中的首行单元格。4.在冻结窗格页面中找到冻......
  • [office] excel中固定首行的教程
    Excel中首行具体该如何固定呢?接下来是小编为大家带来的excel中固定首行的教程,供大家参考。步骤1:在最上面菜单栏点击视图,然后找到“冻结窗格”,在下拉菜单中选择“冻结首行”。步骤2:接着,就可以滚动鼠标滚轮,查看效果了excel中固定首行的教程(二)步骤1:打开一个excel文件......
  • [office] Excel 2019新增功能 MINIFS函数 介绍
    定义:返回一组给定条件所指定的单元格的最小值。语法结构如下:MINIFS(min_range,criteria_range1,criteria1,[criteria_range2,criteria2],...)min_range(必需)参数指的是确定最小值的实际单元格区域;criteria_range1(必需)参数指的是一组用于条件计算的单元格;criteria1(必需)参数指的是用于......
  • [office] excel中设置公式的方法步骤详解
    Excel是一个办公很经常用到的一个办公软件,他主要用于数据的分析、查看、对比等,让数据看起来更直观,更容易对比,而有很多时候需要设置打钩来登记相关信息,现在请欣赏小编带来的excel中设置公式教程。excel中设置公式教程一:直接输入公式excel中设置公式步骤1:选定需要输入公......
  • [office] excel如何保护公式?excel保护公式操作方法
    在上一篇文章我们介绍了excel表格隐藏公式方法,在隐藏单元格中的公式之后,依旧是可以对计算的结果进行更改!那么如何才能保护工作表中的公式不会被更改呢?下面来了解下excel保护公式操作方法。excel保护公式操作步骤:步骤1在工作表中选中包含公式的单元格或区域,单击“开......