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

Pandas实战:将字符串列转为浮点数组并计算平均分数

解决方法:为Pandas DataFrame新增交叉验证分数均值列

问题背景

现有如下Pandas DataFrame,其中cv_scores列以字符串形式存储5折交叉验证的分数,需要新增avg_score列计算每组特征的平均分数:

import pandas as pd

df = pd.DataFrame(
    {'feature_idx': ['(4,)','(4, 15)','(1, 4, 15)',
  '(1, 4, 15, 176)','(1, 4, 15, 89, 176)'],
 'cv_scores': ['[0.71936929 0.75262699 0.77660679 0.85333625 0.76398875]',
  '[0.79227296 0.82675175 0.83723801 0.92502134 0.82625185]',
  '[0.82134069 0.84987581 0.86420576 0.93398567 0.84150328]',
  '[0.83244816 0.86689598 0.87095624 0.9445071  0.85839512]',
  '[0.84192526 0.87788764 0.87939774 0.95181742 0.86563099]']}
)

cv_scores列的字符串格式示例:

>>> df.iloc[0]['cv_scores']
'[0.71936929 0.75262699 0.77660679 0.85333625 0.76398875]'
>>> type(df.iloc[0]['cv_scores'])
<class 'str'>

实现方案

方案一:使用Numpy处理字符串转数组

通过字符串清洗+Numpy数组转换来计算均值,代码简洁高效:

import numpy as np

def get_avg_score(score_str):
    # 去除首尾方括号,按空格分割为数字字符串列表,转浮点数组
    score_array = np.array(score_str.strip('[]').split(), dtype=np.float64)
    return score_array.mean()

# 新增avg_score列
df['avg_score'] = df['cv_scores'].apply(get_avg_score)

方案二:使用AST转换为列表计算均值

先将空格分隔的字符串转换为标准列表格式,再计算均值:

import ast

def get_avg_score_v2(score_str):
    # 替换空格为逗号,将字符串转为列表,再计算均值
    score_list = ast.literal_eval(score_str.replace(' ', ','))
    return sum(score_list) / len(score_list)

df['avg_score'] = df['cv_scores'].apply(get_avg_score_v2)

最终结果

执行上述代码后,DataFrame将新增avg_score列,结果如下:

feature_idx                                          cv_scores  avg_score
0                  (4,)  [0.71936929 0.75262699 0.77660679 0.85333625 0...   0.773186
1               (4, 15)  [0.79227296 0.82675175 0.83723801 0.92502134 0...   0.841507
2            (1, 4, 15)  [0.82134069 0.84987581 0.86420576 0.93398567 0...   0.862182
3       (1, 4, 15, 176)  [0.83244816 0.86689598 0.87095624 0.9445071 0...   0.874641
4   (1, 4, 15, 89, 176)  [0.84192526 0.87788764 0.87939774 0.95181742 0...   0.883332

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:44:59