0
在我的數據框df
中,我有一些列(即2:11),其值爲NaN或某些文本,如下所示。熊貓用一些列的值1取代非零值
>>> df.head(2)
Yoga Cardio_time Legsfront Legsback Ass Calf Back Biceps \
date
2016-01-15 0.0 3.0 Framsida lår NaN Rumpa Vad NaN NaN
2001-01-01 0.0 40.0 Framsida lår NaN NaN NaN NaN NaN
Chest Shoulders Triceps Other Muscles_time Stretch_time Notes
date
2016-01-15 NaN NaN NaN testing NaN NaN NaN
2001-01-01 Bröst NaN NaN NaN NaN NaN NaN
對於變量[Legsfront,...,肱三頭肌]我要重新編碼,以便NaN值被零取代 - 這可通過.fillna(0, inplace=True)
完成。我在下面的代碼中這樣做了。然後我想重新編碼爲非零,但我做不到。我嘗試過dfb[dfb != 0] = 1
和dfb.Ass[dfb.Ass != 0] = 1
。也許需要for循環?
>>> binaryvars = ['Legsfront', 'Legsback', 'Ass', 'Calf', 'Back', 'Biceps', 'Chest', 'Shoulders', 'Triceps']
>>> dfb = df[binaryvars]
>>> dfb.fillna(0, inplace=True)
>>> dfb.head(2)
Legsfront Legsback Ass Calf Back Biceps Chest Shoulders \
date
2016-01-15 Framsida lår 0 Rumpa Vad 0 0 0 0
2001-01-01 Framsida lår 0 0 0 0 0 Bröst 0
Triceps
date
2016-01-15 0
2001-01-01 0
使用'.notnull'是完美的。理想情況下,我只會使用'df'並跳過'dfb',因爲後者只是一種解決方法。你可以評論(或修改你的答案),這樣我就可以直接改變''''''''''''''''''' – jacob
這很簡單,而不是使用dfb'df [binaryvars] =' – Dark