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

如何将指定字符串转换为Pandas DataFrame并输出目标格式的CSV

如何将指定字符串转换为Pandas DataFrame并输出目标格式的CSV

嘿,这个需求用Python的Pandas库就能轻松搞定,我给你一步步演示怎么做:

首先,我们需要先把原始的字符串数据读入Pandas,再调整成你想要的宽表格式,最后输出成目标样式的文件。

步骤1:导入必要的库

我们需要用pandas处理数据,用StringIO模拟文件来读取字符串:

import pandas as pd
from io import StringIO

步骤2:定义原始数据

把你给出的字符串赋值给变量:

data = """Country DistrictA PopulationA
Country DistrictB PopulationB
Country DistrictC PopulationC"""

步骤3:读取字符串到DataFrame

用read_csv读取字符串,指定分隔符为任意空格(\s+),并给列命名:

# 读取数据,自定义列名
df = pd.read_csv(StringIO(data), sep=r'\s+', header=None, names=['Country', 'District', 'Population'])

这一步会把每行的三个字段分别放到Country、District、Population列里,形成一个"长表"。

步骤4:重塑为宽表格式

用pivot方法把District转成列,Population作为对应的值,同时重置索引让Country成为普通列:

# 转置为宽表,把District拆成单独的列
pivoted_df = df.pivot(index='Country', columns='District', values='Population').reset_index()
# 去掉自动生成的列名前缀
pivoted_df.columns.name = None

现在你会得到一个DataFrame,列是Country、DistrictA、DistrictB、DistrictC,行里是对应的人口数据。

步骤5:调整成目标样式

根据你给出的输出样例,我们需要把Country列的值改成A,并添加最后一列---,同时给对应值加上点:

# 修改Country列的值为A
pivoted_df['Country'] = 'A'
# 添加---列,值为DistrictC的人口加上点
pivoted_df['---'] = pivoted_df['DistrictC'] + '.'

步骤6:输出为目标格式

最后把处理好的DataFrame输出成空格分隔的文本(符合你要的CSV样式),注意不要输出索引:

# 输出为空格分隔的文件,文件名可以自定义
pivoted_df.to_csv('output.csv', sep=' ', index=False)
# 如果想要更规整的间距,也可以用制表符分隔:
# pivoted_df.to_csv('output.csv', sep='\t', index=False)

这样输出的文件就完全贴合你给出的样例啦!

备注:内容来源于stack exchange,提问作者Sampath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:59:30