计算每个后续的每组包含熊猫的2行的平均值

时间:2019-04-29 16:39:03

标签: python pandas group-by mean

我正在尝试为所有数据帧计算每个后续2行组的平均值。我想我通过以下代码得到了这一点: df.groupby(np.arange(len(df))//2).mean()

但是,问题在于并非所有值都是数字。在这种情况下,如果组的第二行是数字,而第一行不是数字,则不是平均值,而是与第二行相同。如果两行都不是数字,则应将值分配为0。

为了获得更好的可视化效果,我有以下数据框:

    Well    Ct
0    A1    Undetermined
1    A2    Undertermined
2    A3    Undetermined
3    A4    41.2
4    B1    42
5    B2    43

我想要获得的是:

     Well     Ct
0    A1-A2    0.0
1    A3-A4    41.2
2    B1/B2    42.5

有什么办法可以解决这个问题或已经发布的其他类似问题?

1 个答案:

答案 0 :(得分:5)

使用_signIn = () => { const fb = window.FB; if(fb){ fb.getLoginStatus(response => { if(!response) return; if(response.status !== 'connected'){ fb.login(response => { if(!response) return; this.getCredentials(response.authResponse); }) } else { this.getCredentials(response.authResponse); } }); }else { console.log("FB is not initiated correctly") } } 将非数字值强制转换为pandas.to_numeric(熊猫在计算均值时默认会忽略),然后使用NaN + groupby来分配最后的小组。


agg

df.Ct = pd.to_numeric(df.Ct, errors='coerce')

df.groupby(np.arange(df.shape[0]) // 2).agg({'Well': '-'.join, 'Ct': 'mean'}).fillna(0)