我有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/