我有一个 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) 我试图通过提供一种不同的和手动的方式来计算平均值和标准,为这个问题编写解决方案.
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)