我有两个数据框。
DF1
key1 key2
aa a1
bb b1
cc c1
dd d1
DF2
name a1 b1 c1 d1
all 0 0 0 0
jack 12 22 52 44
toby 11 45 21 44
对于给定的关键字让我们说'dd',如果'dd'存在,我将首先检查DF1['key1']。如果是,我将为 DF1['key2'] 取相应的值并将其命名为键。现在我需要的是在列名 == 键中找到与 DF2 中的 Jack 关联的值。我需要一个单独的 python 函数来执行所有这些。所以输入参数将是两个数据帧,关键字和名称,输出将是一个值。
例如: 输入:DF1、DF2、插孔、bb 输出:22
数据框也可以包含小写、大写和空格。
答案 0 :(得分:0)
试试:
def fn(df1, df2, a, b):
c = df1.loc[df1["key1"] == b, "key2"].tolist()[0]
return df2.loc[df2["name"] == a, c].tolist()[0]
val = fn(df1, df2, "jack", "bb")
print(val)
打印:
22