pandas用字符串或整数替换布尔值

时间:2016-09-26 09:04:12

标签: pandas replace boolean

这是我的代码的snipett与列值比较:

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)

问题在于我对Character (True='Y' or False = 'N')Integer (True= 1 or False = 0)值感兴趣。

选项df.replace(['True', 'False'],[1,0])不起作用 谢谢

1 个答案:

答案 0 :(得分:8)

分配'eq'列时,请使用atype(int)。 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

enter image description here