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

如何从Python列表提取Count.AutoSlam.OAK版本号与周均值并存入Pandas列表?

问题需求

从给定的逗号分隔Python列表中提取所有形如Count.AutoSlam.OAK4.3. [Weekly Avg: 0.56]的条目,重点获取版本标识中的数字(如示例中的3)及周均值(如示例中的0.56),并将两类数据分别存入独立列表,供Pandas使用。

待处理列表

raw_data = ['Label,Min,Avg,Max,Nov 23,11:00,Nov 23,12:00,Nov 23,13:00,Nov 23,14:00,Nov 23,15:00,Nov 23,16:00,Nov 23,17:00,Nov 23,18:00,Nov 23,19:00,Nov 23,20:00,Nov 23,21:00,Nov 23,22:00,Nov 23,23:00,Nov 24,00:00,Nov 24,01:00,Nov 24,02:00,Nov 24,03:00,Nov 24,04:00,Nov 24,05:00,Nov 24,06:00,Nov 24,07:00,Nov 24,08:00,Nov 24,09:00,Nov 24,10:00,Nov 24,11:00,Nov 24,12:00,Nov 24,13:00,Nov 24,14:00,Nov 24,15:00,Nov 24,16:00,Nov 24,17:00,Nov 24,18:00,Nov 24,19:00,Nov 24,20:00,Nov 24,21:00,Nov 24,22:00,Nov 24,23:00,Nov 25,00:00,Nov 25,01:00,Nov 25,02:00,Nov 25,03:00,Nov 25,04:00,Nov 25,05:00,Nov 25,06:00,Nov 25,07:00,Nov 25,08:00,Nov 25,09:00,2 - Count.AutoSlam.OAK4.3. [Weekly Avg: 0.56] 0.0 0.56 2.38 0.0 2.27 0.0 0.0 0.16 0.30 0.25 1.07 1.79 2.38 0.0 0.98 0.0 0.0 0.0 0.0 0.41 0.47 0.60,7 - Count.AutoSlam.OAK4.18 [Weekly Avg: 0.29] 0.0 0.29 2.34 0.0 0.0 0.0 0.0 0.0 0.0 2.34 0.0,5 - Count.AutoSlam.OAK4.13 [Weekly Avg: 0.34] 0.0 0.34 2.08 0.83 0.30 0.32 0.19 0.26 0.47 0.36 0.0 0.22 0.11 0.36 0.65 0.41 0.52 0.85 0.88 1.28 0.0 0.0 1.19 0.0 0.0 0.0 0.0 0.0 2.08 0.0 0.0 0.45 0.79 0.32 0.0 0.0 0.0 0.0 0.0 0.35 0.0 0.15,1 - Count.AutoSlam.OAK4.6. [Weekly Avg: 0.59] 0.0 0.59 1.79 0.0 0.34 0.11 0.38 0.24 0.19 0.15 0.42 0.69 0.56 0.26 1.26 0.71 1.79 1.51 0.82 1.10 1.40 0.57 0.0 0.85 0.34 0.0 0.15 0.29 0.86 0.35 0.39 0.78 1.09 1.35 0.68 0.70 1.02 1.66 1.15 0.31 0.0 0.0 0.0 0.077 0.13,11 - Count.AutoSlam.OAK4.19 [Weekly Avg: 0.23]']
最优解决方案

使用正则表达式匹配目标模式是最高效的方式,因为目标条目的格式固定,正则可以精准提取所需字段。

代码实现

import re
import pandas as pd

# 原始数据
raw_data = ['Label,Min,Avg,Max,Nov 23,11:00,Nov 23,12:00,Nov 23,13:00,Nov 23,14:00,Nov 23,15:00,Nov 23,16:00,Nov 23,17:00,Nov 23,18:00,Nov 23,19:00,Nov 23,20:00,Nov 23,21:00,Nov 23,22:00,Nov 23,23:00,Nov 24,00:00,Nov 24,01:00,Nov 24,02:00,Nov 24,03:00,Nov 24,04:00,Nov 24,05:00,Nov 24,06:00,Nov 24,07:00,Nov 24,08:00,Nov 24,09:00,Nov 24,10:00,Nov 24,11:00,Nov 24,12:00,Nov 24,13:00,Nov 24,14:00,Nov 24,15:00,Nov 24,16:00,Nov 24,17:00,Nov 24,18:00,Nov 24,19:00,Nov 24,20:00,Nov 24,21:00,Nov 24,22:00,Nov 24,23:00,Nov 25,00:00,Nov 25,01:00,Nov 25,02:00,Nov 25,03:00,Nov 25,04:00,Nov 25,05:00,Nov 25,06:00,Nov 25,07:00,Nov 25,08:00,Nov 25,09:00,2 - Count.AutoSlam.OAK4.3. [Weekly Avg: 0.56] 0.0 0.56 2.38 0.0 2.27 0.0 0.0 0.16 0.30 0.25 1.07 1.79 2.38 0.0 0.98 0.0 0.0 0.0 0.0 0.41 0.47 0.60,7 - Count.AutoSlam.OAK4.18 [Weekly Avg: 0.29] 0.0 0.29 2.34 0.0 0.0 0.0 0.0 0.0 0.0 2.34 0.0,5 - Count.AutoSlam.OAK4.13 [Weekly Avg: 0.34] 0.0 0.34 2.08 0.83 0.30 0.32 0.19 0.26 0.47 0.36 0.0 0.22 0.11 0.36 0.65 0.41 0.52 0.85 0.88 1.28 0.0 0.0 1.19 0.0 0.0 0.0 0.0 0.0 2.08 0.0 0.0 0.45 0.79 0.32 0.0 0.0 0.0 0.0 0.0 0.35 0.0 0.15,1 - Count.AutoSlam.OAK4.6. [Weekly Avg: 0.59] 0.0 0.59 1.79 0.0 0.34 0.11 0.38 0.24 0.19 0.15 0.42 0.69 0.56 0.26 1.26 0.71 1.79 1.51 0.82 1.10 1.40 0.57 0.0 0.85 0.34 0.0 0.15 0.29 0.86 0.35 0.39 0.78 1.09 1.35 0.68 0.70 1.02 1.66 1.15 0.31 0.0 0.0 0.0 0.077 0.13,11 - Count.AutoSlam.OAK4.19 [Weekly Avg: 0.23]']

# 拆分逗号分隔的内容
split_items = raw_data[0].split(',')

# 定义正则表达式:匹配目标条目,捕获版本号和周均值
pattern = re.compile(r'Count\.AutoSlam\.OAK4\.(\d+)\.? \[Weekly Avg: (\d+\.\d+)\]')

# 初始化存储列表
version_numbers = []
weekly_avgs = []

# 遍历所有拆分后的条目
for item in split_items:
    match = pattern.search(item)
    if match:
        # 提取版本号并转为整数
        version = int(match.group(1))
        # 提取周均值并转为浮点数
        avg = float(match.group(2))
        version_numbers.append(version)
        weekly_avgs.append(avg)

# 转为Pandas DataFrame(可选,直接用列表也可以)
df = pd.DataFrame({
    'Version': version_numbers,
    'Weekly Avg': weekly_avgs
})

# 输出结果
print("版本号列表:", version_numbers)
print("周均值列表:", weekly_avgs)
print("\nPandas DataFrame:")
print(df)

代码解释

  1. 拆分原始数据:先把列表中唯一的字符串按逗号拆分,得到单个条目。
  2. 正则匹配:
    • Count\.AutoSlam\.OAK4\.(\d+)\.?:匹配版本号部分,(\d+)捕获版本数字,\.?兼容末尾可能存在的点(比如示例中的3.)。
    • \[Weekly Avg: (\d+\.\d+)\]:匹配周均值部分,(\d+\.\d+)捕获小数形式的均值。
  3. 数据转换与存储:将捕获到的字符串分别转为整数(版本号)和浮点数(周均值),存入对应列表。
  4. Pandas兼容:可以直接用两个列表创建DataFrame,方便后续分析。

运行结果

版本号列表: [3, 18, 13, 6, 19]
周均值列表: [0.56, 0.29, 0.34, 0.59, 0.23]

Pandas DataFrame:
   Version  Weekly Avg
0        3        0.56
1       18        0.29
2       13        0.34
3        6        0.59
4       19        0.23

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:30:52