我有一个数据集
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)