Pandas DataFrame에서 True / False를 1/0에 매핑하려면 어떻게해야합니까?
부울 True / False 값이있는 Python pandas DataFrame에 열이 있지만 추가 계산을 위해서는 1/0 표현이 필요합니다. 빠른 pandas / numpy 방법이 있습니까?
편집 : 아래 답변은 정수와 True / False 값이 모두있는 배열이 해당 배열에서 반환 dtype=object
되는 numpy의 경우 유지되지 않는 것 같습니다 . numpy에서 추가 계산을 진행하기 위해 명시 적으로 설정해야했습니다 np_values = np.array(df.values, dtype = np.float64)
.
부울 값의 단일 열을 정수 1 또는 0의 열로 변환하는 방법에 대한 질문에 매우 명시 적으로 대답하기 위해 :
df.somecolumn = df.somecolumn.astype(int)
Dataframe에 1 (int)을 곱하면됩니다.
[1]: data = pd.DataFrame([[True, False, True], [False, False, True]])
[2]: print data
0 1 2
0 True False True
1 False False True
[3]: print data*1
0 1 2
0 1 0 1
1 0 0 1
True
이다 1
파이썬에서, 마찬가지로 False
입니다 0
* :
>>> True == 1
True
>>> False == 0
True
당신은 그들이 그들이이 숫자 것처럼 단지 그들을 처리하여 당신이 그들에 원하는 작업을 수행 할 수있을 것 입니다 번호 :
>>> issubclass(bool, int)
True
>>> True * 5
5
따라서 질문에 답하기 위해 작업이 필요하지 않습니다. 이미 찾고있는 것이 있습니다.
* 참고 I의 사용 이다 영어 단어가 아닌 파이썬 키워드로 is
- True
어떤 임의 같은 대상이되지 않습니다 1
.
프레임에서 직접이 작업을 수행 할 수도 있습니다.
In [104]: df = DataFrame(dict(A = True, B = False),index=range(3))
In [105]: df
Out[105]:
A B
0 True False
1 True False
2 True False
In [106]: df.dtypes
Out[106]:
A bool
B bool
dtype: object
In [107]: df.astype(int)
Out[107]:
A B
0 1 0
1 1 0
2 1 0
In [108]: df.astype(int).dtypes
Out[108]:
A int64
B int64
dtype: object
참고 URL : https://stackoverflow.com/questions/17383094/how-can-i-map-true-false-to-1-0-in-a-pandas-dataframe
'programing' 카테고리의 다른 글
CoreData : 경고 : 명명 된 클래스를로드 할 수 없습니다. (0) | 2020.09.04 |
---|---|
유형이 숫자인지 확인하는 방법 (0) | 2020.09.04 |
오류-데이터베이스가 사용 중이므로 독점 액세스를 얻을 수 없습니다. (0) | 2020.09.04 |
SourceTree에서 푸시를 시도 할 때 "태그가 이미 있기 때문에 업데이트가 거부되었습니다." (0) | 2020.09.04 |
자바에서 문자 c까지 문자열에서 하위 문자열을 얻는 방법은 무엇입니까? (0) | 2020.09.04 |