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) ```

Original source