If I have a function f that I am applying to more than once to a set of columns, what's a more Pythonic way of going about it. Right now, what I am doing is this.
newdf=df.groupby(['a', 'b']).apply(lambda x: f(x, 1))
newdf.columns=['1']
newdf['2']=df.groupby(['a', 'b']).apply(lambda x: f(x, 2))
newdf['3']=df.groupby(['a', 'b']).apply(lambda x: f(x, 3))
newdf['4']=df.groupby(['a', 'b']).apply(lambda x: f(x, 4))
Is there a better way of going about it?
Thanks,
newdf = pd.concat( df.groupby(['a', 'b']).apply(lambda x: f(x, i)) for i in range(1, 5), axis=1 ). And a sample dataframe would help.apply