2017-09-11 4 views
0

'888'값 중 하나와 함께 'Call_ID'열이있는 데이터 프레임 'df'가 있습니다. 다음 변수가 있습니다 :키로 연결된 문자열을 전달할 때 팬더의 KeyError

c = 'Call_ID' 
v = '888' 
q = 'df[c] == v' 

df[df[c] == v] 잘 작동합니다. 그러나 df[q]이 나에게 주요 오류를주고 있습니다. 어떤 제안?

답변

1

df[q]'df[c] == v'이라는 열을 찾고 있습니다. df[c] == v과 같지 않습니다. 첫 번째 것은 문자열이고 두 번째 것은 Python 표현식입니다.

1

부울 색인화 아니요은 문자열 표현을 지원하지 않으며 평가하지 않습니다. 대신 query가 필요합니다.

df.query('Call_ID == @v') 
또는

,

df.query('{} == "{}"'.format(c, v)) 

df 

    a b c 
0 1 1 a 
1 1 2 b 
2 1 3 c 
6 2 1 d 
7 2 2 e 
9 2 2 x 
10 2 1 x 

df.query("c == 'x'") 

    a b c 
9 2 2 x 
10 2 1 x 
+0

'df.query (사용 '{} ==를'{} ''형식의 (c, V))'구문 오류가 발생했습니다 – Kshitij

+0

@Kshitij 따옴표를 확인하십시오 .... –

+0

@Kshitij 구문 오류가 발생하면 분명히 잘못 복사 한 것입니까? 보시다시피,이 작품은 나를 위해 작동합니다. –