如何按键将字典列表中的数据分组?

我有一张字典清单,每本字典都与一名学生有关。我想创建一个表格,将每个课程按学期分组,并具有与每一行相关的值的平均值。

课程-学期-平均

当我使用函数.groupby()时,它不起作用,但是我找不到要做什么。

我的清单的特征:

[{'matricule': '22000803','nom': 'Boyer,André','note': 'C+','valeur': 2.3,'titre': 'La cybersécurité et le gestionnaire','sigle': 'TECH 20701','trimestre': 'H2005'},{'matricule': '22000829','nom': 'Keighan,Maylis','note': 'A+','valeur': 4.3,{'matricule': '22000869','nom': 'Lahaie,Lyes','note': 'B+','valeur': 3.3,{'matricule': '22000973','nom': 'Conerardy,Rawaa',{'matricule': '22001034','nom': 'Naftanaila,Carla','trimestre': 'H2005'}]

我尝试过:

tableau = info.groupby(["Cours","Trimestre"])[["Valeur"]].mean()

但是答案是: “列表”对象没有属性“分组依据”

liuqinjian 回答:如何按键将字典列表中的数据分组?

首先需要创建一个DataFrame。可以使用pd.DataFrame.from_dict

df=pd.DataFrame.from_dict(my_list)
print(df)

输出

  matricule               nom note valeur  \
0  22000803      Boyer,André   C+    2.3   
1  22000829    Keighan,Maylis   A+    4.3   
2  22000869       Lahaie,Lyes   B+    3.3   
3  22000973   Conerardy,Rawaa   B+    3.3   
4  22001034  Naftanaila,Carla   B+    3.3   

                                   titre       sigle trimestre  
0  La cybersécurité et le gestionnaire  TECH 20701     H2005  
1  La cybersécurité et le gestionnaire  TECH 20701     H2005  
2  La cybersécurité et le gestionnaire  TECH 20701     H2005  
3  La cybersécurité et le gestionnaire  TECH 20701     H2005  
4  La cybersécurité et le gestionnaire  TECH 20701     H2005  

其中my_list是您的列表:

my_list=[{'matricule': '22000803','nom': 'Boyer,André','note': 'C+','valeur': 2.3,'titre': 'La cybersécurité et le gestionnaire','sigle': 'TECH 20701','trimestre': 'H2005'},{'matricule': '22000829','nom': 'Keighan,Maylis','note': 'A+','valeur': 4.3,{'matricule': '22000869','nom': 'Lahaie,Lyes','note': 'B+','valeur': 3.3,{'matricule': '22000973','nom': 'Conerardy,Rawaa',{'matricule': '22001034','nom': 'Naftanaila,Carla','trimestre': 'H2005'}]

现在您可以使用groupby您只能按列中存在的列标签分组(不存在课程)

df_means=df.groupby(['matricule','trimestre'],as_index=False).valeur.mean()
print(df_means)

输出:

  matricule trimestre  valeur
0  22000803     H2005     2.3
1  22000829     H2005     4.3
2  22000869     H2005     3.3
3  22000973     H2005     3.3
4  22001034     H2005     3.3
本文链接:https://www.f2er.com/3149926.html

大家都在问