将带参数的函数应用于 pandas 数据框

Applying a function with arguments to pandas dataframe

我有一个百分位数数据框 df 如下:

            col1   col2   col3      
GDStart                                                                   
2019-09-02  100    11     12  
2019-09-03   60    16     14  
2019-09-04   60    67     13  

和外部函数为:

import numpy as np
def Fn(x, a):
 return np.percentile(x, a)

我想将我的自定义 Fn 应用于 df 的每一行以获得每一行的中位数。使用 np.percentile(x, 50) 即每行的中位数时,我期待以下答案:

         col1
GDStart                                                                   
2019-09-02   12
2019-09-03   16
2019-09-04   60

我不确定如何在此处应用 lambdaapply 函数。我的情况很棘手,因为我可能需要找到第 30 个百分位或第 50 个百分位等; a 变化。

将关键字传递给 apply

它将传递给函数

df.apply(Fn, a=.5, axis=1)

传递位置参数

df.apply(Fn, args=(.5,), axis=1)