类型错误:'<'在'str'和'int'用于使用AND的条件语句



我有一个数据集

Name   Verified   Happy
Gabriel  True      Yes
John     False     No
Daniella True      Yes
Gabriel  False     No
Elena    True      Yes
Gabriel False     Yes

预期输出:

Name   Verified   Happy  Gesture
Gabriel  True      Yes    Bye
John     False     No     Bye
Daniella True      Yes    Bye
Gabriel  False     No     Hi
Elena    True      Yes    Bye
Gabriel False     Yes    Bye

所以条件是,如果名字是Gabriel,并且她没有得到验证,如果她不高兴,那么我们会给出"的手势;嗨;。

我所做的:

df['Gesture'] =  np.where(df['Name'].eq('Gabriel') &df['Verified'].eq(False) & 
df['Happy'].eq('No'), 'Hi', 'Bye')

我也试过:

df['Gesture'] = ((df['Name'].eq('Gabriel') & (df['Verified'].eq(False) &  (df['Happy'].eq('No'))).map({True:'Hi',False:'Bye'}))

我仍然得到这个错误:

TypeError: '<' not supported between instances of 'str' and 'int'

有人能说出我哪里错了吗?

尝试运行此

import pandas as pd
import numpy as np
names = ["Gabriel", "John", "Daniella", "Gabriel", "Elena", "Gabriel"]
df = pd.DataFrame(names, columns=['Name'])
df["Verified"] = [True,False,True,False,True,False]
df["Happy"] = ["Yes", "No", "Yes", "No", "Yes", "Yes"]
df['Gesture'] =  np.where(df['Name'].eq('Gabriel') &df['Verified'].eq(False) & df['Happy'].eq('No'), 'Hi', 'Bye')
print(df)

最新更新