根据数字在另一列 Pandas 数据帧 Python 中的出现计算列的平均值

Calculating mean of column based on the occurence of a number in another column Pandas dataframe Python

我有一个 Pandas 数据框,如下所示。我想要做的是计算 s2 列的平均值,每次在 s1 中出现“5”。

s1  s2
5   0.5
1   0.43
5   1
5   1

在这种情况下,5 出现了 3 次,所以我们取 0.5+1+1=0.83 的平均值。 有人可以帮我计算一下吗?谢谢!

试试这个

df[df['s1']==5]['s2'].mean()
mean = df.loc[df['s1'] == 5, 's2'].mean()

输出:

0.8333333333333334

如果你想分解上面的答案,试试这个 -

import pandas as pd
  
data = [[5, 0.5], [1, .43], [5, 1], [5, 1]]
  
df = pd.DataFrame(data, columns = ['S1', 'S2'])

df = df.loc[df['S1'] == 5]

df["S2"].mean()