按一列分组,然后平均其余各列。熊猫数据框

时间:2019-11-13 14:53:02

标签: python python-3.x pandas dataframe

我想做两件事,以便可以为数据框中的每个组取144列中每列的平均值。

我有144根色谱柱用于不同的压力读数,然后有一列用于“循环”。大约有70个循环。我想按“周期”对数据框进行分组,然后计算每个周期的每一列的平均值。

我已成功使用以下方法将数据分组:

cycles = df.groupby('cycle')

在将其余各列的平均值取为逻辑时,我也遇到了麻烦,因为以下将所有列的平均值取平均值,这不是我想要的:

for cycle, group in cycles:
    cycles.mean()

如果有帮助,或者有一个简单的方法,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

您只需指定要用来计算平均值的轴,就像这样:

for cycle, group in cycles:
    group_mean = group.mean(axis=0)

axis=0将给出行的平均值(每行),axis=1-列的平均值(每行)

答案 1 :(得分:0)

for循环会将所有列强制转换为浮点数,除了“ cycle”列(我猜这是“ object”(字符串)类型)之外。 然后,您根据key =“ cycle”创建一个名为“ cycles”的分组对象,然后应用一个“ aggregate”函数,在您的情况下为“ 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)