Pandas 将布尔值替换为字符串或整数
这是我的代码与列值比较的片段:Pandas 将布尔值替换为字符串或整数,pandas,replace,boolean,Pandas,Replace,Boolean,这是我的代码与列值比较的片段: import pandas as pd df =pd.DataFrame({'coname1':['Apple','Yahoo','Gap Inc'],'coname2':['Apple', 'Google', 'Apple']}) df['eq'] =df.apply(lambda row: row['coname1'] == row['coname2'],axis=1) 问题是我对字符(True='Y'或False='N')或整数(True=1或False=
import pandas as pd
df =pd.DataFrame({'coname1':['Apple','Yahoo','Gap Inc'],'coname2':['Apple', 'Google', 'Apple']})
df['eq'] =df.apply(lambda row: row['coname1'] == row['coname2'],axis=1)
问题是我对字符(True='Y'或False='N')
或整数(True=1或False=0)
值感兴趣
选项df.replace(['True','False'],[1,0])
不起作用
谢谢在分配
'eq'
列时,请使用atype(int)
。整数转换将True
转换为1
,False
转换为0
df = pd.DataFrame({'coname1': ['Apple','Yahoo','Gap Inc'], 'coname2':['Apple', 'Google', 'Apple']})
df['eq'] = df.apply(lambda row: row['coname1'] == row['coname2'], axis=1).astype(int)
角色
df['eq'] = np.where(df['eq'], 'Y', 'N')
df
传递dict以在df上使用
replace
df.replace({'True':1,'False':0})您也可以在函数本身中执行此操作:df['eq']=df.apply(lambda row:1如果row['coname1']=row['coname2']否则0,axis=1)
我也一直在努力用整数替换布尔值!如果您想要0或1,现在将布尔调用转换为int似乎是最好的方法