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:将员工姓名与公司、年龄、性别匹配的主要内容,如果未能解决你的问题,请参考以下文章