如何找到Pandas的总体平均值[duplicate]

zxlwwiss  于 2023-03-11  发布在  其他
关注(0)|答案(1)|浏览(133)

此问题在此处已有答案

Group by Date find average distinct customers(2个答案)
昨天关门了。
我有一个 Dataframe 如下:

# initialize list of lists
data = [['A','Excel','1'], ['A','Word_soft','0'],['B','Excel','1'],['B','Word','1'],['C','Word','1'],['C','Word_soft','0'],['D','Java2','1'],['D','Java','1'],['E','PPT','0'], ['E','Word_soft','0']]
  
# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['System','App','DevTool'])

我执行了以下操作,以获得每个系统中DevTool的计数。

df.groupby(['System','DevTool'])['DevTool'].count()

我需要找到每个类别1和0中的总体DevTool平均值,如下所示

1 -类别DevTool平均值计算如下

(A系统的1类DevTool计数+ B系统的1类DevTool计数+......很快)/具有1类DevTool的系统数量
=(1+2+1+2)/ 4 = 1.5
类似地,0 -类别Devtool平均值计算如下
(A系统的0类别DevTool计数+ B系统的0类别DevTool计数+...即将)/具有0类别DevTool的系统数量
=(1+1+2)/ 3 = 1.33
为了进行这个平均值的计算,每次我把数据移动到excel中,用excel内置函数得到这个平均值,我不知道如何直接在Pandas内部进行这个平均值的计算,得到1和0类别的平均值分别是1.5和1.33。

r6hnlfcb

r6hnlfcb1#

添加一个groupby.mean步骤(.groupby('DevTool').mean()):

(df.groupby(['System','DevTool'])['DevTool'].count()
   .groupby('DevTool').mean()
)

也可以将第一步替换为value_counts

df[['System','DevTool']].value_counts(sort=False).groupby('DevTool').mean()

输出:

DevTool
0    1.333333
1    1.500000
Name: DevTool, dtype: float64

相关问题