在同一索引下跨3个数据帧执行函数

2024-04-24 11:49:58 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以沿同一索引跨3个数据帧a、B和C执行函数?结束数据帧将具有与DF A相同的尺寸。例如:

def func(dfA.A0, dfB.A0, dfC.A0):
    if (dfA.A0 > dfB.A0):
        return dateDifferenceBetween(dfA.A0, dfC.A0)
    return 0

    Dataframe A         
    ABC DEF GHI JKL
01/01/2017  12/11/2017  03/01/2017  26/03/2017  10/07/2017
01/02/2017  21/08/2017  28/02/2017  08/09/2017  07/03/2017
01/03/2017  15/09/2017  07/01/2017  24/07/2017  15/11/2017
01/04/2017  01/01/2017  29/10/2017  13/06/2017  10/05/2017

    Dataframe B         
    ABC DEF GHI JKL
01/01/2017  22/11/2017  12/01/2017  08/04/2017  22/07/2017
01/02/2017  31/08/2017  11/03/2017  20/09/2017  14/03/2017
01/03/2017  26/09/2017  13/01/2017  05/08/2017  19/11/2017
01/04/2017  09/01/2017  02/11/2017  25/06/2017  21/05/2017


    Dataframe C         
    0           
01/01/2017  22/11/2017          
01/02/2017  31/08/2017          
01/03/2017  26/09/2017          
01/04/2017  09/01/2017          

enter image description here


Tags: 数据函数dataframedfreturn尺寸defjkl
1条回答
网友
1楼 · 发布于 2024-04-24 11:49:58

IIUC,您可以迭代AB的列并将其传递给函数:

for i range(len(A.columns)):
    func(A.iloc[:, i], B.iloc[:, i], C.iloc[:, 0])

请记住,即使ABC都有不同的列名,这种方法仍然有效

此外,func现在将接受3pd.Series作为参数:

def func(sA, sB, sC):
    ...

相关问题 更多 >