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

如何将指定格式的字符串转换为含5列的Pandas DataFrame?

最简方法:利用Pandas的read_csv结合StringIO

这里的核心思路是把你的空格分隔字符串当成一个“文本文件”来读取,Pandas的read_csv工具可以直接处理这种空白分隔的格式,不需要手动做字符串拆分和列表重组,代码非常简洁。

完整代码示例

import pandas as pd
from io import StringIO

# 你的原始字符串
string = "entity precision recall f1-score support B-EXPERIENCE 0.578 0.488 0.529 244 I-EXPERIENCE 0.648 0.799 0.716 399 L-EXPERIENCE 0.850 0.697 0.766 244 U-EXPERIENCE 0.000 0.000 0.000 9 B-LANGUAGE 0.000 0.000 0.000 1 I-LANGUAGE 0.000 0.000 0.000 1 L-LANGUAGE 0.000 0.000 0.000 1 U-LANGUAGE 0.788 0.904 0.842 292 B-PROGRAMMING 0.480 0.433 0.455 141 I-PROGRAMMING 0.524 0.328 0.404 67 L-PROGRAMMING 0.261 0.255 0.258 141 U-PROGRAMMING 0.904 0.825 0.862 2010 micro_avg 0.785 0.746 0.765 3550 macro_avg 0.419 0.394 0.403 3550 weighted_avg 0.787 0.746 0.763 3550"

# 转换为DataFrame
df = pd.read_csv(StringIO(string), sep='\s+', header=0)

关键细节说明

  1. StringIO的作用:它把普通字符串包装成了Pandas可以读取的“类文件对象”,让read_csv能直接处理字符串内容,不用真的写入文件再读取。
  2. sep='\s+'参数:指定用任意数量的空白字符作为分隔符(你的字符串里字段之间可能是单个或多个空格,这个参数都能正确识别)。
  3. header=0:告诉Pandas把字符串的第一组5个元素(entity precision recall f1-score support)作为表头。

执行后得到的df就是你需要的5列DataFrame,第一列是entity,其余列会自动识别为数值类型,方便后续分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:22:40