Python:将员工姓名与公司、年龄、性别匹配

Posted

技术标签:

【中文标题】Python:将员工姓名与公司、年龄、性别匹配【英文标题】:Python: Match employee name with company, age, gender 【发布时间】:2018-07-23 16:41:48 【问题描述】:

创建具有以下规范的函数:

函数名:employee_matcher

目的:将员工姓名与提供的公司、年龄和性别相匹配

参数:公司(字符串),年龄(整数),性别(字符串)

返回:员工的名字和姓氏是这样的:返回名字,姓氏

注意:如果有多个员工符合相同的描述,first_name 和 last_name 应返回所有可能的名字和姓氏的列表

df_employee = pd.read_json(open('employee_info.json'))
  print(df_employee)

df_employee 中的元素

     age      company first_name  gender        last_name
0     42      123-reg  Inglebert    Male         Falconer
1     14          163     Rafael    Male         Bedenham
2     31          163     Lemuel    Male             Lind
3     45          163      Penny  Female          Pennone
4     52          163       Elva  Female         Crighton
5     55         1688   Herminia  Female            Sisse
6     30        1und1       Toby  Female           Nisuis
7     36        1und1     Kylynn  Female         Vedikhov
8     37        1und1     Mychal    None          Denison
9     32          360    Angelle  Female           Kupisz
10    35          360     Ilario    Male          Mannagh

代码

这是我的尝试。

def employee_matcher(company, age, gender):
  match = (df_employee['company'] == company) & (df_employee['age'] == age) & (df_employee['gender'] == gender)

  print(match)

  return list(pd.Series(match['first_name']).values, pd.Series(match['last_name']).values)

注意 print(match) 会打印出如下输出

0      False
1      False
2      False
3      False
4      False
5      False
6      False
7      True
8      False
9      False
10     False

示例运行

employee_matcher('1und1', 36, 'Female')

运行示例是让这一行打印出 Kylynn Vedikhov

【问题讨论】:

*** 不是代码编写服务。如果您有特定的问题或问题,请在上面写一个问题。 【参考方案1】:

这里的问题是 match 是一个掩码,您需要使用掩码来查找满足条件的行。即df_employee[mask]

这是修改后的代码

def employee_matcher(company, age, gender):
    match = df_employee[(df_employee['company'] == company) & (
        df_employee['age'] == age) & (
        df_employee['gender'] == gender)]
    return (match.first_name + ' ' + match.last_name).values.tolist()

该函数将返回匹配记录的所有名字/姓氏

In []: employee_matcher('1und1', 36, 'Female')
Out[]: ['Kylynn Vedikhov']

【讨论】:

非常感谢。这绝对解决了问题。

以上是关于Python:将员工姓名与公司、年龄、性别匹配的主要内容,如果未能解决你的问题,请参考以下文章

JAVA数据结构与算法之哈希表

经理评分系统

小项目 经理评分系统 总结

算法 哈希表 自己模拟hashMap

中国互联网公司员工平均年龄出炉,平均年龄最低 27 岁,最高 33 岁

中国互联网公司员工平均年龄出炉:平均年龄 27 到 33 岁