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

Python操作CSV:拆分逗号分隔列值为独立行并重排列顺序

CSV格式转换实现方案

核心逻辑是将逗号分隔的多值列按对应关系拆分,每组值单独成行,可直接基于pandas实现,无需手写复杂循环。

实现步骤

  • 读入原始CSV时注意匹配实际分隔符:你之前生成初始文件用的是分号;作为分隔符,读入时必须指定sep=';',否则会出现列解析错误
  • 对hostname/IP/MAC三列按逗号拆分,同时清理多余空格、过滤空值,避免原始数据多打逗号产生无效空行
  • 用pandas内置的explode方法按索引对齐展开三列的拆分结果,保证同一行拆分出的主机名、IP、MAC一一对应
  • 调整列顺序后导出为目标CSV

完整可运行代码

import pandas as pd

# 1. 读入原始CSV,替换为你的实际文件路径
df = pd.read_csv('/path/to/your/raw_source.csv', sep=';')

# 2. 拆分三列的逗号分隔值,做基础数据清洗
split_cols = ['hostname', 'IP', 'MAC']
for col in split_cols:
    df[col] = df[col].apply(
        lambda x: [item.strip() for item in str(x).split(',') if item.strip()]
    )

# 3. 对齐展开为单行单组数据
# pandas版本≥1.3.0支持多列同时explode
df = df.explode(split_cols, ignore_index=True)
# 低版本pandas用逐列展开写法替代上面一行即可
# df = df.explode('hostname').explode('IP').explode('MAC').reset_index(drop=True)

# 4. 调整为目标列顺序,导出结果
df_final = df[['hostname', 'IP', 'MAC', 'SWA']]
df_final.to_csv('/path/to/your/target_result.csv', index=False)

效果说明

运行后导出的CSV会完全匹配目标格式:每一行对应单台主机的hostname、IP、MAC和所属SWA编号,不会保留逗号分隔的聚合值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:54:17