【问题标题】:Apply function with attribute series as arguments以属性系列作为参数应用函数
【发布时间】:2019-09-20 17:36:43
【问题描述】:

我有一个名为 Tabla 的 DataFrame。我正在对每一列应用一个函数(称为func11),该函数基本上用于针对另一行绘制特定行(是的,用于每列绘制一个数据点)。

我的问题是:如何在 func11 中将属性 Series 作为参数传递,以便更好地控制要绘制的行?

我的 Tabla 的一部分如下所示:

                 G13          G42
RH1_0_i      12.7973      25.3097
RH2_0_i     -3.51892      85.2268
RH1_0        6700.17     -8888.33
RH2_0           7613     -7945.33
n1       2.30668e+11  2.23905e+11
n2       2.08436e+11  1.92139e+11

所以,基本上我想用额外的参数来调用 func11,比如 RH1_0_in1,它们是 Series 属性。

到目前为止,我的代码是:

Tabla.apply(func11)
def func11(x):
    plt.plot(x.RH1_0_i,x.n1)
    plt.plot(x.RH2_0_i,x.n2)

我想要的是:

Tabla.apply(func11,extra_args=(arg1,arg2,arg3,arg4))
def func11(x,extra_args):
    plt.plot(x.arg1,x.arg3)
    plt.plot(x.arg2,x.arg4)

【问题讨论】:

标签: python python-3.x pandas apply series


【解决方案1】:

好的,感谢 amanb 发表的评论,我想出了一个办法:

def func12(x,x1,y1,x2,y2):
    X1,X2,Y1,Y2 = x[x1],x[x2],x[y1],x[y2]
    plt.plot(X1,Y1)
    plt.plot(X2,Y2)

Tabla.apply(func12,args=('RH1_0_i','n1','RH2_0_i','n2'))

因此,通过这种方式,我可以将 Series 属性作为参数传递给我的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 2021-04-19
    相关资源
    最近更新 更多