将excel中的一行数据拆分成多行
评论
收藏

将excel中的一行数据拆分成多行

经验分享
西
西南
2024-11-09 16:06·浏览量:2583
西
西南
发布于 2024-11-09 16:062583浏览

场景1

1. 在抓取数据的时候有时会出现许多数据被抓取在同一行,为了更方便的查看数据  需要将一行数据拆分为多行,如下图,我想要将上方A中的格式按照%切割成B。

1.1 我们可以利用分列的方式去实现。具体流程如下:

通过转置的方式将整行内容转变成一列的内容再写入到excel中,然后利用分列实现数据分开(这里的内容替换大家可以按自己需求设定),然后我们将分列得到的数据读取后再通过转置的方式将列换成行,再次写入到excel中。

运行结果:

1.2 除此之外还可以使用文本分割再写入的方式完成,流程如下:

这里可以通过设置变量去控制需要写入的列号

运行结果如下:


场景2

2. 除了上述的情况外,还会遇到某一列数据需要按需拆分成多行  如下图所示,需要将A转换成B(将发货省份那一列中的数据进行拆分成多行)

2.1 我们可以直接使用编码版完成这个操作,使用pandas中的explode()方法 可以实现这个效果,代码也很简洁。(需要安装一下pandas库和openpyxl库)。

import pandas as pd

def main(args):
    data = pd.read_excel('需要处理的excel文件地址', sheet_name='数据所在的sheet页名称')
    # 读取Excel数据

    data['你需要修改的列的表头名'] = data['你需要修改的列的表头名'].apply(lambda x: x.replace(',', ', ').split(', '))
    # 把,(中文状态)替换成,(英文状态)并按,(英文状态)分割成列表(由于explode有格式限制,所以需要统一格式,这里将你之前的分隔符替换成逗号,我之前使用的是中文状态下的逗号,需替换成英文状态下的逗号)
    
    data = data.explode('你需要修改的列的表头名')
    # 将每个列表中的元素展开为独立的行
    
    data.to_excel('需要保存的excel文件地址', index=False)
    # 回写到原来的excel或者新的excel,如果选择回写到之前的excel会自动覆盖之前的数据,(大家测试时可以先备份一下,以免丢失原始数据)

    print(data)

除了单列数据以外,explode()方法也支持对多个列同时展开。对于多个列,explode() 会在每一列的所有元素上同时“展开”,确保每一行都对应一个完整的记录。有兴趣的小伙伴可自行研究~

2.2 除了上述方法外,还可以使用excel中的Power Query编辑器。

选中包含需要分列的大区域,在数据选项卡中找到从表格创建链接,然后会打开Power Query编辑器,在编辑器中选择需要拆分数据的列,点击拆分列选项,按照分隔符拆分,在高级选项中选择拆分为行,分隔符可自定义设置,设置好后点击确定,最后再点击左上角关闭并上载至  然后选择需要放置的区域即可,示例如下:

2.3 还可以直接利用第三方插件实现,我这里使用的是【方方格子】

小伙伴们可以自行百度这个插件安装使用~

收藏6
全部评论1
最新
发布评论
评论