Pandas – converting yes : no to True : False failing
pandas, python
Solution
As EdChum points out you need to assign back to the df.
df = pd.DataFrame({'subscribed':np.random.choice(['yes','no'], 10)})
print(df)
Input:
subscribed
0 yes
1 yes
2 yes
3 no
4 no
5 yes
6 no
7 no
8 no
9 yes
df =df.replace({'subscribed': {'yes': True, 'no': False}})
print(df)
Output:
subscribed
0 True
1 True
2 True
3 False
4 False
5 True
6 False
7 False
8 False
9 True
Problem
My best efforts to convert a column with 'yes' 'no' values to True, False or 1 , 0 are failing. The column is 'subscribed'. ``` df.subscribed.unique() returns array(['no', 'yes'], dtype=object) ``` Tried the following. None of them worked: ``` df.subscribed = df.subscribed.astype(int) df.subscribed.map(dict(yes=1, no=0)) df.replace({'subscribed': {'yes': 1, 'no': 0}}) d = {'yes': True, 'no': False} df['subscribed'].map(d) ```