我创建了以下数据框
lst = [('Ron','Math',10),('Ron','Math',0),('Ron','Math',5),('Ron','Math',7),('Rick','Science',10),('Rick','Science',0),('Rick','Science',0),('Rick','Science',0),('Rick','Science',7)]
labels=['Student','Subject','Grades']
t=pd.DataFrame.from_records(lst,columns=labels)
通过执行以下操作,我设法在两个非零值之间计算零的数量:
df=t[t!=0].reset_index()
df['a'] = df['index'] - df['index'].shift(1)
df.drop('index', axis=1, inplace=True)
但是,我想针对每个类别(学生和科目)执行此操作,我试图按学生和科目分组,并使用以前的代码作为函数,但它不起作用。有关如何执行此操作的任何想法。