匹配数据帧中的两列,如果匹配,则返回相应的第三列



我有一个熊猫数据帧,如下所示

    First name  Last name   Position
0   Troy          Hudson    NaN
1   NaN            NaN      NaN

我有输入变量

x = input("first name ")
y = input("last name")
lo1 = x.lower()
lo2 = y.lower()

我试过了

match = df[df['First name'].str.match('Troy', na=False)]

以匹配名字并返回整行。

我想将数据

帧中的名字和姓氏转换为小写,如果名字、姓氏与我的输入 lo1 和 lo2 匹配,我想以小写形式返回相应的位置。如果位置 = NaN,则未找到打印

应该非常简单

first_names = df['First name'].str.lower()
last_names = df['Last name'].str.lower()
match = (first_names == lo1) & (last_names == lo2)
position = df['Position'][match].dropna()
if len(position) == 0:
    print('Not Found')
else:
    print(position)

最新更新