繁体   English   中英

按一列分组,然后平均各列的 rest。 Pandas dataframe

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM