Python 发生异常:TypeError';在<;字符串>';需要字符串作为左操作数,而不是序列
我在python中与Pandas合作,我有两个数据帧,我试图将信息从一个数据帧拉到另一个数据帧。下面是一个代码示例Python 发生异常:TypeError';在<;字符串>';需要字符串作为左操作数,而不是序列,python,pandas,Python,Pandas,我在python中与Pandas合作,我有两个数据帧,我试图将信息从一个数据帧拉到另一个数据帧。下面是一个代码示例 import pandas as pd employees = {'Names': ['John','Jack','Frank','Mike'], 'Employee_id': ['123', '124', '125', '126'], 'Leader': ['','','','']} df1 = pd.DataFra
import pandas as pd
employees = {'Names': ['John','Jack','Frank','Mike'],
'Employee_id': ['123', '124', '125', '126'],
'Leader': ['','','','']}
df1 = pd.DataFrame(employees, columns = ['Names', 'Employee_id', 'Leader'])
print(df1)
leader = {'Employee_id': ['123', '124', '125', '126'],
'Supervisor': ['Nick', 'Jeff', 'Nick', 'Jeff']}
df2 = pd.DataFrame(leader, columns = ['Employee_id', 'Supervisor'])
print(df2)
df1['Leader'] = df1['Employee_id'].map(lambda x: df2['Supervisor'] if df2['Employee_id'] in x else "")
print(df1)
这里是错误
Exception has occurred: TypeError
'in <string>' requires string as left operand, not Series
发生异常:TypeError
“in”要求字符串作为左操作数,而不是序列
不知道我做错了什么
谢谢你的帮助 使用:
在x中的代码
df2['Employee_id']中,x
是一个字符串,df2['Employee_id']
是一个系列。Python不知道如何在大字符串操作中检查系列。更具体地说,它只能检查大字符串中的某些字符串
在您的情况下,您可以将map
与系列一起使用:
df1['Leader'] = df1['Employee_id'].map(df2.set_index('Employee_id')['Supervisor'])
输出:
Names Employee_id Leader
0 John 123 Nick
1 Jack 124 Jeff
2 Frank 125 Nick
3 Mike 126 Jeff
Names Employee_id Leader
0 John 123 Nick
1 Jack 124 Jeff
2 Frank 125 Nick
3 Mike 126 Jeff