[英]Group by one column and then average each of the rest of the columns. Pandas dataframe
我正在尝试做两件事,以便我可以取 dataframe 中每个组的 144 列中的每一列的平均值。
我有 144 列用于不同的压力读数,然后有一列用于“循环”。 大约有70个周期。 我想将 dataframe 按“周期”分组,然后计算每个周期的每列的平均值。
我已成功使用以下方法对数据进行分组:
cycles = df.groupby('cycle')
我在取每个剩余列的平均值的逻辑上也遇到了问题,因为以下将所有列平均在一起,这不是我想要的:
for cycle, group in cycles:
cycles.mean()
如果有任何帮助或更简单的方法,我将不胜感激。
您只需指定要沿其计算平均值的轴,如下所示:
for cycle, group in cycles:
group_mean = group.mean(axis=0)
axis=0
将给出行的平均值(对于每一列), axis=1
- 列的平均值(对于每一行)
for 循环会将所有列转换为浮点数,除了“循环”列,我想它是一个“对象”(字符串)类型。 然后,您根据 key = "cycle" 创建一个名为 "cycles" 的 groupy object,然后应用“聚合” function,在您的情况下为“mean”。
for column in df.loc[:, df.columns != 'cycle']:
df[column] = df[column].astype(float)
cycles = df.groupy("cycle")
cycles.mean(axis = 0)
或直接
df.groupy("cycle").mean(axis = 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.