You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas DataFrame中按分号拆分列并计算子串长度并导出XLSX

解决方案

实现逻辑(向量化高效处理)

直接利用pandas的字符串向量化方法,避免低效循环,一步完成拆分、长度计算和结果拼接:

import pandas as pd

# 示例数据(替换为你的实际DataFrame)
df1 = pd.DataFrame({
    'Part_Number': ['123; 345', '54; 8903']
})

# 核心处理:拆分列→计算每个子串长度→用'; '拼接结果
df1['Part_Number_valid'] = df1['Part_Number'].str.split('; ')\
    .apply(lambda lst: '; '.join(str(len(item)) for item in lst))

# 查看处理后的结果
print(df1)

执行后输出:

Part_Number Part_Number_valid
0   123; 345            3; 3
1   54; 8903            2; 4

导出为XLSX文件

使用to_excel方法导出,需确保安装了openpyxl依赖(用于.xlsx格式支持):

# 若未安装依赖,先执行此命令
# pip install openpyxl

# 导出文件,index=False不写入行索引
df1.to_excel('处理结果.xlsx', index=False)

原代码问题说明

  1. 效率低下:使用iterrows()逐行循环,大数据集下性能远不如pandas向量化操作
  2. 格式错误:将长度列表转成字符串后直接拼接,会得到"[3, 3]"这类不符合需求的格式,正确做法是遍历长度值转字符串后用; 连接
  3. 赋值逻辑错误:df1['Part_Number'].replace(...)是全局替换,而非给当前行的新列赋值,即便修正赋值方式,循环效率仍不如向量化方案

内容的提问来源于stack exchange,提问作者Renan Nakamoto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:15:47