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

如何将文本文件中的字符串列表转换为Python Pandas DataFrame?

如何将空格分隔的字符串列表转换为Pandas DataFrame?

方法一:利用read_csv结合StringIO处理

这种方法直接模拟文件读取逻辑,自动适配多空格分隔的场景,简洁高效:

import pandas as pd
from io import StringIO

# 定义你的字符串列表
data = [
    'n      Au[%]     Ag[%]     Cu[%]     Zn[%]     Ni[%]     Pd[%]     Fe[%]     Cd[%]     mq[ ]', 
    '1   71.085    4.6578    22.468    1.6971    0.0292    0.0000    0.0627    0.0000    1.1019', 
    '2   71.444    4.0611    22.946    1.4333    0.0400    0.0000    0.0763    0.0000    1.1298', 
    '3   71.845    4.2909    22.308    1.4234    0.0293    0.0000    0.1031    0.0000    1.0750', 
    '4   71.842    4.2794    22.290    1.4686    0.0339    0.0000    0.0856    0.0000    1.1334'
]

# 将列表转为换行分隔的字符串,模拟文本文件内容
csv_content = '\n'.join(data)

# 用read_csv读取,sep='\s+'匹配任意数量的空格作为分隔符
df = pd.read_csv(StringIO(csv_content), sep='\s+')

# 查看生成的DataFrame
print(df)

方法二:手动分割字符串后构建DataFrame

如果需要自定义处理逻辑(比如过滤无效值、特殊拆分规则),可以手动拆分每一行内容:

import pandas as pd

data = [
    'n      Au[%]     Ag[%]     Cu[%]     Zn[%]     Ni[%]     Pd[%]     Fe[%]     Cd[%]     mq[ ]', 
    '1   71.085    4.6578    22.468    1.6971    0.0292    0.0000    0.0627    0.0000    1.1019', 
    '2   71.444    4.0611    22.946    1.4333    0.0400    0.0000    0.0763    0.0000    1.1298', 
    '3   71.845    4.2909    22.308    1.4234    0.0293    0.0000    0.1031    0.0000    1.0750', 
    '4   71.842    4.2794    22.290    1.4686    0.0339    0.0000    0.0856    0.0000    1.1334'
]

# 提取列名,按任意空格分割第一行
columns = data[0].split()

# 处理数据行,拆分每一行并转为列表
data_rows = [row.split() for row in data[1:]]

# 构建DataFrame并将所有列转换为数值型
df = pd.DataFrame(data_rows, columns=columns).apply(pd.to_numeric)

# 查看生成的DataFrame
print(df)

两种方法都能得到结构正确的DataFrame:方法一适合常规场景,代码量少;方法二灵活性更高,便于添加自定义处理步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:01:05