2017-12-10 5 views
1

데이터 프레임이 있으며 기존 열에서 계산 된 몇 가지 추가 열을 추가하려고합니다. 그 칼럼을 부울로 만들고 싶습니다만, 할당 할 수없고, 부울과 잘 어울리는 곳을 찾을 수 없습니다. 예를 들어 문자열, 또는 INT - - 나는 다른 종류를 사용하는 것이 행복 해요하지만 그들은 같은 문제Python Pandas 부울 열을 할당/할당 할 곳

import pandas as pd 


df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]}) 

print(df) 


df.assign(computed_column01=(True).where(a==1 and b==2, False)) 


AttributeError: 'bool' object has no attribute 'where' 

에게 나에게 이것을 달성하는 올바른 방법에 대한 어떤 지침을 크게 감상 할 수를 제공합니다.

건배

데이비드

+1

'np.where ((df.A == 1) & (df.B == 2), True, False) ' – Wen

+3

df ['calculated_column01 '] = ((df.A == 1) & df. B == 2)) – Vaishali

답변

1

이 당신이 필요하지만, 당신이 당신의 답변에 감사드립니다이

df['BOOL_both>2'] = (df.A > 2) & (df.B > 2) 
0

같은 것을 시도 할 것입니다 확실하지. 나는 함께 갔다.

import pandas as pd 

df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]}) 

df['computed_column01'] = ((df.A == 1) & (df.B == 2)) 

print(df) 

    A B computed_column01 
0 1 2    True 
1 2 3    False 
2 3 4    False 

Vaishali와 W00lf가 제안했다.

흥미롭게도 나는 열을 만들려면 assign 메서드를 가져올 수 없습니다. 아무리 뭘하려, 문은 실패하지 않았다하지만 데이터 프레임을 인쇄 할 때이

...이 내가 뭔가를 오해 한 의미 같은데요 항목 ...

import pandas as pd 
import numpy as np 

df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]}) 

df.assign(computed_column01=np.where((df.A==1) & (df.B==2), True, False)) 

print(df) 


    A B 
0 1 2 
1 2 3 
2 3 4 

포함되어 있지 않습니다

+0

'df.assign'은 할당 결과와 함께 새로운 데이터 프레임을 반환합니다. 귀하의 경우에는 반환 값을 무시합니다. 할당을 잡으려면'df = df.assign (...)'을 수행하면됩니다. –

+0

그걸로 간단합니다 - 고마워요 - RTFM해야 할 것 같아요? :) – Bravid

관련 문제