복붙노트

[SQL] 팬더 쿼리 기능은 열 이름에 공백이 작동하지 않습니다

SQL

팬더 쿼리 기능은 열 이름에 공백이 작동하지 않습니다

나는 열 이름에 공백이있는 dataframe 있습니다. 나는 결과를 얻을 쿼리 방법을 사용하려합니다. 그것은 'C'열하지만 대한 오류가 'A B'로 잘 작동한다

import pandas as pd
a = pd.DataFrame(columns=["a b", "c"])
a["a b"] = [1,2,3,4]
a["c"] = [5,6,7,8]
a.query('a b==5')

이를 위해이 오류가 무엇입니까 :

a b ==5
  ^
SyntaxError: invalid syntax

나는 등 '_'와 같은 다른 문자로 공간을 채우기 위해 싶지 않아

[A, B] : 괄호 안에 예 변수 이름을 넣어 pandasql를 사용하여 하나가 해킹

해결법

  1. ==============================

    1.팬더 0.25에서 이후 당신은 당신이 할 수 있도록 역 따옴표로 열 이름을 탈출 할 수있을 것입니다

    팬더 0.25에서 이후 당신은 당신이 할 수 있도록 역 따옴표로 열 이름을 탈출 할 수있을 것입니다

    a.query('`a b` == 5') 
    
  2. ==============================

    2.로 여기에 설명 :

    로 여기에 설명 :

    당신이 사용할 수 있도록 :

    a.query('`a b`==5')
    

    당신이 당신의 열 이름에 공백이있는 경우 pd.DataFrame.query을 사용할 수 없습니다. 당신이 열을 A, B와 B라는 더라면 무슨 일이 일어날 지 생각해; 필요한 무엇인지에 모호함이있을 것입니다.

    대신 pd.DataFrame.loc을 사용할 수 있습니다 :

    df = df.loc[df['a b'] == 5]
    

    만 행을 필터링하고 있기 때문에, 당신은 생략 .loc 접근 모두 할 수 있습니다

    df = df[df['a b'] == 5]
    
  3. ==============================

    3.그것은 아직 가능하지 않다. 확인 GitHub의 이슈 # 6508 :

    그것은 아직 가능하지 않다. 확인 GitHub의 이슈 # 6508 :

    열 이름은 유효한 파이썬 식별자해야하므로 쿼리 필요 문자열이 유효한 파이썬 표현식이어야하는 이유입니다.

    솔루션 부울 색인입니다 :

    df = df[df['a b'] == 5]
    
  4. ==============================

    4.나는 쿼리 방법은 빈 공간 열 이름을 사용하지 않는 것을 두려워. 어떤 경우에는이 방법으로 dataframe을 조회 할 수 있습니다 :

    나는 쿼리 방법은 빈 공간 열 이름을 사용하지 않는 것을 두려워. 어떤 경우에는이 방법으로 dataframe을 조회 할 수 있습니다 :

    import pandas as pd
    a = pd.DataFrame({'a b':[1,2,3,4], 'c':[5,6,7,8]})
    a[a['a b']==1]
    
  5. ==============================

    5.대신 pandas.query 기능을 사용하는 나는 값을 조회하는이 경우 조건을 만들 것이며, 조건이 true입니다. 예를 들면 :

    대신 pandas.query 기능을 사용하는 나는 값을 조회하는이 경우 조건을 만들 것이며, 조건이 true입니다. 예를 들면 :

    import pandas as pd
    a = pd.DataFrame(columns=["a b", "c"])
    a["a b"] = [1,2,3,5]
    a["c"] = [5,6,7,8]
    #a.query('a b==5') Remove the query because it cannot lookup columns with spaces in the name.
    
    condition = a['a b'] == 5
    print(a['a b'][condition])
    
    output:
    
        3    5
    

    우리는 볼 그 인덱스 3 True로 당신의 조건들을 평가에서 (당신이 특정 지수와 부울 값이 아닌 시리즈를 원하는 경우).

  6. from https://stackoverflow.com/questions/50697536/pandas-query-function-not-working-with-spaces-in-column-names by cc-by-sa and MIT license