将带参数的函数应用于 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
我不确定如何在此处应用 lambda
或 apply
函数。我的情况很棘手,因为我可能需要找到第 30 个百分位或第 50 个百分位等; a
变化。
将关键字传递给 apply
它将传递给函数
df.apply(Fn, a=.5, axis=1)
传递位置参数
df.apply(Fn, args=(.5,), axis=1)
我有一个百分位数数据框 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
我不确定如何在此处应用 lambda
或 apply
函数。我的情况很棘手,因为我可能需要找到第 30 个百分位或第 50 个百分位等; a
变化。
将关键字传递给 apply
它将传递给函数
df.apply(Fn, a=.5, axis=1)
传递位置参数
df.apply(Fn, args=(.5,), axis=1)