我尽最大努力将列转换为“是”' '无'值为True,False或1,0都失败。该列已订阅'。
df.subscribed.unique() returns
array(['no', 'yes'], dtype=object)
尝试以下方法。他们都没有工作:
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)
答案 0 :(得分:0)
正如EdChum指出你需要分配回df。
df = pd.DataFrame({'subscribed':np.random.choice(['yes','no'], 10)})
print(df)
输入:
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)
输出:
subscribed
0 True
1 True
2 True
3 False
4 False
5 True
6 False
7 False
8 False
9 True
答案 1 :(得分:0)
您可以在一行中使用它
df.col.map(dict(yes = 1,no = 0))