Python 在列不同的位置分组

Python 在列不同的位置分组,python,pandas,Python,Pandas,我有一个数据帧df,看起来像: df = {'quarter':['Q1','Q1','Q1','Q2','Q2','Q2','Q3','Q3','Q3','Q4','Q4','Q4'], 'id':[1,2,3,1,2,3,1,2,3,1,2,3], 'score':['DD','DD','DD','D','DD','DD','D','D','D','D','D','D'] } quarter id score 0

我有一个数据帧df,看起来像:

df = {'quarter':['Q1','Q1','Q1','Q2','Q2','Q2','Q3','Q3','Q3','Q4','Q4','Q4'],
         'id':[1,2,3,1,2,3,1,2,3,1,2,3],
         'score':['DD','DD','DD','D','DD','DD','D','D','D','D','D','D']

         }



   quarter  id   score
0       Q1   1      DD
1       Q1   2      DD
2       Q1   3      DD
3       Q2   1       D
4       Q2   2      DD
5       Q2   3      DD
6       Q3   1       D
7       Q3   2       D
8       Q3   3       D
9       Q4   1       D
10      Q4   2       D
11      Q4   3       D
   count
Q1    
Q2    1
Q3    2
Q4    0
我正在尝试按id计算每个季度的分数,每个季度的分数不同。例如,如果一个id在第1季度的得分是DD,而该id在第2季度的得分是D,那么该id将在第2季度被计算在内。因此,最后我有一个输出,如下所示:

df = {'quarter':['Q1','Q1','Q1','Q2','Q2','Q2','Q3','Q3','Q3','Q4','Q4','Q4'],
         'id':[1,2,3,1,2,3,1,2,3,1,2,3],
         'score':['DD','DD','DD','D','DD','DD','D','D','D','D','D','D']

         }



   quarter  id   score
0       Q1   1      DD
1       Q1   2      DD
2       Q1   3      DD
3       Q2   1       D
4       Q2   2      DD
5       Q2   3      DD
6       Q3   1       D
7       Q3   2       D
8       Q3   3       D
9       Q4   1       D
10      Q4   2       D
11      Q4   3       D
   count
Q1    
Q2    1
Q3    2
Q4    0
第一季度没有计算值,因为没有上一季度可比较

我尝试过groupby,但在前几个季度无法为特定id计算分数

df.groupby(['quarter','id']).size().reset_index().groupby('Quarter').count()
首先按轴重塑形状,将移位值与ne进行比较以确定是否不相等,并按总和计算Trues值,最后将First值设置为NaN:


谢谢@jezrael。当我实施您的解决方案时,我得到了:Q1 NaN Q2 3.0 Q3.0 Q4 3.0数据类型:float64您能想出这样做的原因吗?@Stacey-使用示例数据?分数是浮动的吗?还是字符串?谢谢,它们是字符串问题是样本数据?Doh,很抱歉,分配的数据帧不正确。谢谢你的帮助!