You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何将表格行按条目数拆分为多行并生成唯一ID

没问题,这个需求其实用数据处理工具很容易实现,我给你准备了两种常用方案,一种适合批量处理大量数据的Python代码方案,另一种是不用写代码的Excel可视化操作方案,你按需选就行!

先明确需求场景(给你模拟个示例数据)

假设你的原始表格是这样的:

日期唯一ID条目数ref
2024-05-2020240520_1430_14269111142691
2024-05-2020240520_1500_1426923142692
2024-05-2120240521_1000_1426922142692

我们要把每行拆成「条目数」对应的行数,并且给每个拆分后的行生成唯一的新ID——比如ref为142692的两条原始记录,拆分后要分别生成20240520_1500_142692_1..._2..._320240521_1000_142692_1..._2这样的ID,确保没有重复。


方案一:用Python Pandas批量处理(适合大数据量)

如果你的数据量比较大,或者需要重复执行这个操作,用Python代码效率最高:

  1. 先导入pandas库(如果没装的话,先在命令行跑pip install pandas
import pandas as pd
  1. 加载你的数据(这里我用示例数据,你换成自己的CSV/Excel路径就行)
# 示例数据,你可以替换成 pd.read_csv("你的文件路径.csv") 或者 pd.read_excel("你的文件路径.xlsx")
df = pd.DataFrame({
    '日期': ['2024-05-20', '2024-05-20', '2024-05-21'],
    '唯一ID': ['20240520_1430_142691', '20240520_1500_142692', '20240521_1000_142692'],
    '条目数': [11, 3, 2],
    'ref': ['142691', '142692', '142692']
})
  1. 拆分数据行并生成新ID
# 第一步:给每行生成对应条目数的序号列表(比如条目数11就生成[1,2,...,11])
df['拆分序号'] = df['条目数'].apply(lambda x: list(range(1, x+1)))

# 第二步:把列表展开成单独的行
df_split = df.explode('拆分序号', ignore_index=True)

# 第三步:拼接新的唯一ID(原ID + 下划线 + 拆分序号)
df_split['新唯一ID'] = df_split['唯一ID'] + '_' + df_split['拆分序号'].astype(str)
  1. 导出结果(可选)
# 导出到CSV
df_split.to_csv("拆分后的数据.csv", index=False)
# 或者导出到Excel
df_split.to_excel("拆分后的数据.xlsx", index=False)

处理完之后,你就能得到拆分好的表格,每个行的新ID都是唯一的!


方案二:用Excel Power Query(不用写代码)

如果你不想碰代码,用Excel自带的Power Query就能搞定:

  1. 打开你的Excel表格,选中数据区域,点击「数据」选项卡 → 「从表格/区域」(旧版Excel可能在「获取和转换数据」组里找对应选项)
  2. 进入Power Query编辑器后,点击「添加列」→ 「自定义列」,输入公式:
    {1..[条目数]}
    
    点击确定后,会生成一个包含序号列表的新列
  3. 点击新列标题旁边的「展开」按钮(两个向外的箭头),选择「扩展到新行」,这时候每行就会拆成对应数量的行
  4. 再添加一个自定义列生成新ID,公式写:
    [唯一ID] & "_" & Text.From([自定义])
    
  5. 最后点击「关闭并上载」,拆分好的数据就会出现在新的工作表里了!

内容的提问来源于stack exchange,提问作者Mohammad Hussain

火山引擎 最新活动