Json 如何按键对dict列表中的数据进行分组?
我有一份字典清单,每一本都和一个学生有关。我想创建一个表,按学期按每门课程分组,并有与每行相关的值的平均值 课程-学期-平均 当我使用函数.groupby()时,它不起作用,但我找不到该做什么 我名单上的额外部分:Json 如何按键对dict列表中的数据进行分组?,json,list,dataframe,dictionary,group-by,Json,List,Dataframe,Dictionary,Group By,我有一份字典清单,每一本都和一个学生有关。我想创建一个表,按学期按每门课程分组,并有与每行相关的值的平均值 课程-学期-平均 当我使用函数.groupby()时,它不起作用,但我找不到该做什么 我名单上的额外部分: [{'matricule': '22000803', 'nom': 'Boyer,André', 'note': 'C+', 'valeur': 2.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TEC
[{'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, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22000869', 'nom': 'Lahaie,Lyes', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22000973', 'nom': 'Conerardy,Rawaa', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22001034', 'nom': 'Naftanaila,Carla', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'}]
我试过这个:
tableau = info.groupby(["Cours","Trimestre"])[["Valeur"]].mean()
但答案是:
“list”对象没有属性“groupby”您首先需要创建一个数据帧。您可以使用:
输出
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
df_means=df.groupby(['matricule','trimestre'],as_index=False).valeur.mean()
print(df_means)
其中
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, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22000869', 'nom': 'Lahaie,Lyes', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22000973', 'nom': 'Conerardy,Rawaa', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22001034', 'nom': 'Naftanaila,Carla', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'}]
现在您可以使用
groupby
:您只能按列中存在的列标签进行分组(课程不存在)
输出:
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
您首先需要创建一个数据帧。您可以使用:
输出
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
df_means=df.groupby(['matricule','trimestre'],as_index=False).valeur.mean()
print(df_means)
其中
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, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22000869', 'nom': 'Lahaie,Lyes', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22000973', 'nom': 'Conerardy,Rawaa', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'},
{'matricule': '22001034', 'nom': 'Naftanaila,Carla', 'note': 'B+', 'valeur': 3.3, 'titre': 'La cybersécurité et le gestionnaire', 'sigle': 'TECH 20701', 'trimestre': 'H2005'}]
现在您可以使用
groupby
:您只能按列中存在的列标签进行分组(课程不存在)
输出:
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