我想做两件事,以便可以为数据框中的每个组取144列中每列的平均值。
我有144根色谱柱用于不同的压力读数,然后有一列用于“循环”。大约有70个循环。我想按“周期”对数据框进行分组,然后计算每个周期的每一列的平均值。
我已成功使用以下方法将数据分组:
cycles = df.groupby('cycle')
在将其余各列的平均值取为逻辑时,我也遇到了麻烦,因为以下将所有列的平均值取平均值,这不是我想要的:
for cycle, group in cycles:
cycles.mean()
如果有帮助,或者有一个简单的方法,我将不胜感激。
答案 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)