python - compute the mean values over every n elements of different groups -
imagine have dataframe following in ipython:
df = pd.dataframe({ 'a' : ['1', '1', '1', '1','1', '1', '2', '2', '2', '2', '2', '2'], 'b' : ['00:00', '00:10', '00:20', '00:30','01:10', '01:20','00:00', '00:10', '00:20', '00:30','01:10', '01:20',], 'c' : [2,3,4,2,4,5,6,7,1,5,6,4]} )
what need right side result: group on , compute mean on every 2(n) rows of each group. need large scale data set more 4k groups.
i tried used pandas , think useful library.
this solution work example
df.groupby(['a',(df.index/2).astype(int)])['c'].mean()
edit : more versatile solution. independent of index :
g1 =(df.groupby(['a'])['b'].rank()/2).astype(int) df.groupby(['a',g1])['c'].mean()
Comments
Post a Comment