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

时间:2019-06-10 01:09:04

标签: python dataframe

我有一个熊猫数据框,其外观如下

    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匹配,我想以小写形式返回相应的位置。如果position = NaN,则找不到打印内容

1 个答案:

答案 0 :(得分:0)

应该非常简单

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)