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

如何使用Dask对DataFrame多列数据逐行计算平均值

错误原因分析

你之前使用的groupby()是分组聚合函数,作用是将数据按照传入列的取值对行做分组,对每个分组内的多行数据做聚合计算,完全不适用逐行运算的场景。另外你groupby的传参方式本身也不符合规范,多列分组需要把列名放在列表中传入,比如df.groupby(['x','y','z']),错误的传参方式也是你得到原数据的原因之一。

正确实现方案

要实现逐行对多列计算均值,只需要调用mean()方法时指定axis=1即可(axis=0为默认按列计算,axis=1代表按行计算)。

完整可运行代码示例

import pandas as pd

# 构造你的测试数据
df = pd.DataFrame([
    [1, 1.3, 0.1, 2.2],
    [2, 1.2, 0.5, 2.0],
    [3, 1.5, 0.3, 2.0],
    [4, 1.3, 0.0, 2.5],
    [5, 1.1, 0.3, 2.3]
], columns=['time', 'x', 'y', 'z'])

# 逐行计算x/y/z三列的平均值,赋值给新列作为运动幅度
df['motion_amplitude'] = df[['x', 'y', 'z']].mean(axis=1)

print(df)

运行输出示例

timexyzmotion_amplitude
11.30.12.21.2
21.20.52.01.2333
31.50.32.01.2667
41.30.02.51.2667
51.10.32.31.2333

如果你需要的是三轴运动的合幅度而非算术平均值,也可以用逐行运算直接计算合模:

df['motion_magnitude'] = (df['x']**2 + df['y']**2 + df['z']**2)**0.5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:57:03