programing

Pandas DataFrame에서 True / False를 1/0에 매핑하려면 어떻게해야합니까?

nasanasas 2020. 9. 4. 07:32
반응형

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

반응형