Home > Mobile >  passing operators to pandas dataframe in function:
passing operators to pandas dataframe in function:

Time:03-30

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.

  • Related