相关疑难解决方法(0)

Pandas:如何计算分组的平均值

我有一个 csv 文件,其中包含一些属性,其中之一是不同餐厅的星级评级etoiles(法语中的“星级”)。这里annee指的是评级的年份。

注意:我不知道如何在这里共享 Jupyter 笔记本表输出,我尝试了不同的命令行,但格式总是很难看。如果有人能帮忙的话。

在此输入图像描述

我想做的非常简单(我认为)..我想添加一个新列,表示餐厅每年星级平均值的标准差。所以我必须估计每年的平均星级。然后,计算这些值的标准差。但是,我真的不知道使用 pandas 的语法可以让我计算餐厅每年的平均星级。有什么建议么?

我知道我需要按年份对餐厅进行分组.groupby('restaurant_id')['annee'],然后取该年餐厅星级的平均值,但我不知道如何写。


# does not work
avis['newColumn'] = (
avis.groupby(['restaurant_id', 'annee'])['etoiles'].mean().std()
)
Run Code Online (Sandbox Code Playgroud)

python pandas jupyter-notebook feature-engineering

4
推荐指数
1
解决办法
8540
查看次数

使用Groupby Pandas DataFrame手动计算STD

我试图通过提供一种不同的和手动的方式来计算平均值和标准,为这个问题编写解决方案.

按照问题中的描述创建了数据框

a= ["Apple","Banana","Cherry","Apple"]
b= [3,4,7,3]
c= [5,4,1,4]
d= [7,8,3,7]

import pandas as pd
df =  pd.DataFrame(index=range(4), columns=list("ABCD"))

df["A"]=a
df["B"]=b
df["C"]=c
df["D"]=d
Run Code Online (Sandbox Code Playgroud)

然后,我创建了一个没有重复的A列表.然后我通过每次项目分组并计算解决方案来完成这些项目.

import numpy as np

l= list(set(df.A))

df.groupby('A', as_index=False)
listMean=[0]*len(df.C)
listSTD=[0]*len(df.C)

for x in l:
    s= np.mean(df[df['A']==x].C.values)
    z= [index for index, item in enumerate(df['A'].values) if x==item ]
    for i in z:
        listMean[i]=s

for x in l:
    s=  np.std(df[df['A']==x].C.values)
    z= [index for index, item in enumerate(df['A'].values) if x==item ]
    for i in z:
        listSTD[i]=s …
Run Code Online (Sandbox Code Playgroud)

python algorithm pandas

2
推荐指数
1
解决办法
1227
查看次数