我有3个数据框(df1,df2,df3),它们的结构相同(#和行/列的标签),但填充了不同的值。

我想根据相关联的列/ df1和df2中的行填充df3。我正在使用FOR循环和自定义函数进行此操作:

for x in range(len(df3.columns)):
    df3.iloc[:, x] = customFunction(x)


我想使用此自定义IF / ELSE函数填充df3:

def customFunction(y):
    if df1.iloc[:,y] <> 1 and df2.iloc[:,y] = 0:
        return "NEW"
    elif df2.iloc[:,y] = 2:
        return "OLD"
    else:
        return "NEITHER"


我理解为什么我在运行此程序时会收到错误消息,但是我不知道如何将此功能应用于系列。我可以用更复杂的代码逐行处理,但我希望有一种更有效的解决方案?我担心我的方法有缺陷。

最佳答案

v1 = df1.values
v2 = df2.values

df3.loc[:] = np.where(
    (v1 != 1) & (v2 == 0), 'NEW',
    np.where(v2 == 2, 'OLD', 'NEITHER'))

关于python - Python-根据在其他数据框的列中满足的条件填充PANDAS数据框列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45220516/

10-11 06:45