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

如何用Python或Pandas修改CSV中的行值格式?

实体格式转换:原生Python vs Pandas实现

问题场景

输入是从CSV行解析得到的字典:

{'entities': [('72, 78', '72, 78,Population'), ('56, 68', '56, 68,subtype_1')]}

需要转换为目标格式:

{'entities': [(72, 78,'Population'), (56, 68,'subtype_1')]}

询问是否用原生Python或Pandas实现更合适。

解决方案

两种方式都可行,根据数据规模和场景选择:

1. 原生Python实现(轻量直接)

无需额外依赖,直接处理字符串拆分与类型转换,适合单条或小批量数据:

original = {'entities': [('72, 78', '72, 78,Population'), ('56, 68', '56, 68,subtype_1')]}

processed = {'entities': []}
for item in original['entities']:
    # 拆分第二个元素,提取位置与类型信息
    parts = item[1].split(', ')
    processed['entities'].append((int(parts[0]), int(parts[1]), parts[2]))

print(processed)

运行后直接输出目标格式,代码简洁易维护。

2. Pandas实现(批量CSV处理)

如果需要处理整份CSV文件的大量数据,Pandas的批量处理能力更高效:

import pandas as pd
import ast

# 读取CSV文件(假设列名为entities)
df = pd.read_csv('your_input.csv')

def process_entity(entity_str):
    # 将CSV中存储的字符串解析为元组
    item = ast.literal_eval(entity_str)
    parts = item[1].split(', ')
    return (int(parts[0]), int(parts[1]), parts[2])

# 批量转换所有行的实体数据
df['processed_entities'] = df['entities'].apply(process_entity)

# 导出处理后的结果到新CSV
df.to_csv('your_output.csv', index=False)

这种方式适合大规模数据处理,Pandas的向量化操作能显著提升效率。

总结

  • 单条/小批量数据:优先用原生Python,轻量无依赖,代码直接
  • 整份CSV批量处理:选择Pandas,效率更高,适合大数据场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:30:54