0
내 데이터 프레임에 df
아래에 나와있는 것처럼 NaN 또는 일부 텍스트 값을 사용하는 일부 열 (즉 2:11)이 있습니다. [Legsfront이, ..., 삼두근] I는 NaN이 값은 0으로 대체되도록 레코딩하고자하는 변수의팬더는 0이 아닌 일부 값을 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
- 이것은 .fillna(0, inplace=True)
를 사용하여 수행 될 수있다. 나는 아래의 코드에서 그렇게했다. 그렇다면 나는 0이 아닌 것을 1로 재 부호화하고 싶지만 그것을 할 수는 없다. 나는 dfb[dfb != 0] = 1
과 dfb.Ass[dfb.Ass != 0] = 1
으로 시도했다. 어쩌면 for 루프가 필요할까요?
ndf = df.notnull().astype(int)
샘플 출력은 :
>>> 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'를 생략 할 것입니다. 당신은'df'에서'binaryvars'를 직접 변경할 수 있도록 당신의 코멘트 (또는 당신의 대답을 수정할 수 있습니까?)를 주시겠습니까? – jacob
dfb 대신에 간단합니다 'df [binaryvars] =' – Dark