Pandas创建一个框架,其条目是应用于其他DataFrame的相应条目的函数的值

我有树框架,让我们说:

ID    A  B   | ID    A B  | ID    A B
john  *  1   | john  # 2  | john  @ 3
paul  1  1   | paul  2 2  | paul  3 3
jones 1  1   | jones 2 2  | jones 3 3

我必须创建一个新的数据帧,其中每个条目都是一个函数的结果,该函数的参数是三个帧的相应条目

ID    A        B
john f(*,#,@) f(1,2,3)
...

我是熊猫的新手,我知道如何做的唯一方法是将帧转换为numpy数组并像处理三个矩阵一样处理它们,但我更愿意以熊猫的方式解决这个问题。

我已经尝试在 SO 上寻找其他问题,但找不到任何东西,这可能是由于我如何制定我的问题。

回答

不太确定你在做什么,但这里有一些东西:

# Define dummy function (f)
def f(x):
    # you can use here x.name, x.A, x.B 
    # >>> x.name
    # 'paul'
    # >>> x.A
    # ['1', '2', '3']
    # >>> X.B
    # [1, 2, 3]
    return x

>>> df1
      ID  A  B
0   john  *  1
1   paul  1  1
2  jones  1  1

>>> df2
      ID  A  B
0   john  #  2
1   paul  2  2
2  jones  2  2

>>> df3
      ID  A  B
0   john  @  3
1   paul  3  3
2  jones  3  3

>>> pd.concat([df1,df2,df3]).groupby('ID').agg(list).apply(f, axis=1)
               A          B
ID
john   [*, #, @]  [1, 2, 3]
jones  [1, 2, 3]  [1, 2, 3]
paul   [1, 2, 3]  [1, 2, 3]


以上是Pandas创建一个框架,其条目是应用于其他DataFrame的相应条目的函数的值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>