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

如何使用Python将字符串列表转换为含指定列的Pandas DataFrame并写入CSV

解决方法:正确拆分含空格字段的列表为三列DataFrame

嘿,我来帮你搞定这个问题!你现在遇到的问题是直接把整个字符串列表传入pd.DataFrame()时,它会默认把每个字符串当作单列的一行,完全没识别出三列的结构。关键难点在于DisplayName字段包含空格,不能简单按所有空格拆分,得用指定拆分次数的方式来处理。

具体步骤与代码实现

  1. 提取表头:列表第一行就是列标题,直接按空格拆分即可。
  2. 处理数据行:对每一行数据使用split(maxsplit=2)方法,最多拆分2次——这样前两部分自动对应Status和Name,剩下的所有内容会被完整保留为DisplayName。
  3. 创建DataFrame并写入CSV:把处理好的数据和表头传入DataFrame,再导出为符合要求的CSV文件。

完整代码如下:

import pandas as pd

mylines = ['Status Name DisplayName', 'Running MSSQL$DEV SQL Server (DEV)', 'Running MSSQL$TEST SQL Server (TEST)', 'Running MSSQLLaunchpad$DEV SQL Server Launchpad (DEV)', 'Running SQLAgent$DEV SQL Server Agent (DEV)', 'Running SQLAgent$TEST SQL Server Agent (TEST)', 'Running SQLBrowser SQL Server Browser', 'Running SQLTELEMETRY$DEV SQL Server CEIP service (DEV)', 'Running SQLTELEMETRY$TEST SQL Server CEIP service (TEST)', 'Running SQLWriter SQL Server VSS Writer']

# 提取列标题
column_headers = mylines[0].split()

# 处理每一行数据,拆分出三列内容
processed_data = []
for line in mylines[1:]:
    # maxsplit=2 确保只拆分前两个空格,DisplayName完整保留
    status, service_name, display_name = line.split(maxsplit=2)
    processed_data.append([status, service_name, display_name])

# 创建符合要求的DataFrame
df = pd.DataFrame(processed_data, columns=column_headers)

# 查看前几行验证结果
print(df.head())

# 写入CSV文件(index=False 避免写入行索引)
df.to_csv('sql_server_services.csv', index=False)

代码说明

  • split(maxsplit=2):这是解决问题的核心,它会将字符串从左到右最多拆分2次,生成3个元素的列表,完美规避了DisplayName含空格导致的拆分错误。
  • index=False:写入CSV时加上这个参数,不会把DataFrame的行索引写入文件,让最终的CSV格式更干净规范。

运行这段代码后,你得到的DataFrame就会有Status、Name、DisplayName三列,导出的CSV文件也完全符合你的预期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:38:12