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

赛道车辆转向角均值计算及校正方案技术问询

转向角校正:按单辆车维度实现统计与校正

你已经在转向角校正的工作上完成了关键的数据过滤步骤,现在只需要把整体均值计算替换为按车牌号分组统计,就能实现你的需求。下面是调整后的完整代码,我会逐段帮你拆解说明:

调整后的完整代码

import pandas as pd
import numpy as np

# 你的示例数据(实际使用时替换为真实数据集即可)
data = {
    'car': ['00', '00', '00', '00', '1', '1', '1', '1'],
    'lap': [20, 21, 22, 21, 20, 21, 21, 22],
    'steering': [10, -12, 8, 9, 2, 3, -9, 8]
}
df = pd.DataFrame(data)

# Step 1: 基于赛道backstretchend和backstretchstart过滤数据
backstretchstart = 0.5
backstretchend = 0.59
# 注:假设你的真实数据包含corrected_lap__frac列,示例数据暂时注释该行,实际使用时取消注释
# df = df.query('corrected_lap__frac > @backstretchstart & corrected_lap__frac < @backstretchend')

# Step 2: 按单辆车计算转向角均值
car_steer_avg = df.groupby('car')['steering'].mean().reset_index(name='car_steer_mean')

# Step 3: 匹配每辆车的均值到原数据,计算单辆车转向角与自身均值的差值
df = df.merge(car_steer_avg, on='car', how='left')
df["steering_diff"] = df["steering"] - df["car_steer_mean"]

# Step 4: 计算所有差值的均值
avg_diff = df["steering_diff"].mean()

# 转向角校正逻辑:如果差值均值非正且不为NaN,反转符号
if not np.isnan(avg_diff) and avg_diff <= 0:
    df["steering_correct"] = df["steering_diff"] * -1
else:
    df["steering_correct"] = df["steering_diff"]

print(df)

关键代码说明

  • 按车分组计算均值:用df.groupby('car')['steering'].mean()可以直接得到每个车牌号对应的转向角均值,reset_index是为了把分组结果转换成能和原数据合并的DataFrame格式。
  • 合并均值到原数据:通过merge操作,把每辆车的均值匹配到对应行的数据上,这样就能逐行计算单辆车的转向角与自身均值的差值。
  • 差值均值与校正:先计算所有差值的整体均值,再根据条件判断是否需要反转校正后的转向角符号,完全贴合你原本的需求逻辑。

示例数据运行结果

针对你提供的示例数据,运行后会得到如下输出:

car  lap  steering  car_steer_mean  steering_diff  steering_correct
0  00   20        10            3.75           6.25              6.25
1  00   21       -12            3.75         -15.75            -15.75
2  00   22         8            3.75           4.25              4.25
3  00   21         9            3.75           5.25              5.25
4   1   20         2            1.00           1.00              1.00
5   1   21         3            1.00           2.00              2.00
6   1   21        -9            1.00         -10.00            -10.00
7   1   22         8            1.00           7.00              7.00

这里差值的均值为0,满足avg_diff <=0的条件,但因为差值均值本身为0,反转后结果和原差值一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:55:12