Say I want to iterate say I have pandas dataframe:
import pandas as pd
tmp = pd.DataFrame([(2,2),(0,4),(1,3)],columns= ['A','B'])
and I want to write something of the following kind:
def f(operator,column)
s.t
f('mean','A')
will return:
tmp['A'].mean()
CodePudding user response:
IIUC, use getattr
:
tmp = pd.DataFrame([(2,2),(0,4),(1,3)], columns=['A','B'])
def f(operator, column):
return getattr(tmp[column], operator)()
f('mean', 'A')
# 1.0
f('max', 'B')
# 4
CodePudding user response:
As the complement of @mozway answer, you can use agg
:
>>> tmp.agg({'A': 'mean', 'B': 'max'})
A 1.0
B 4.0
dtype: float64
Take a look to here: check the last lines of code. agg
already use getattr
.