2017-05-10 3 views
1

'yes' 'no'値を持つ列をTrue、Falseまたは1,0に変換しようとする私の最善の努力は失敗しています。列は「購読中」です。Pandas - yes:noをTrueに変換する:False failing

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) 
+2

ため息....あなたが戻って割り当てる必要があります: 'DF [ '購読'] =のDF [ '購読']。 map(d) 'ほとんどのパンダオペレーションはコピーを返しますが、いくつかのメソッドは' True'に設定する必要がある 'inplace'パラメータを持っていますので、opはinplaceで実行されます – EdChum

+0

sigh ... thanks EdChum。 – GDB

答えて

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 
関連する問題