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似乎是最好的方法