代码之家  ›  专栏  ›  技术社区  ›  Rocketq

pandasql:如何选择非英文命名列?

  •  0
  • Rocketq  · 技术社区  · 7 年前

    Dataframe有非英文命名列,如何选择这些列?

    import pandasql as pdsql
    
    pysql = lambda q: pdsql.sqldf(q, globals())
    sqlquery = 'select ''Машина'', min(''Дата доставки'') from days_ans group by 1'
    pysql(sqlquery)
    

    最后一行返回错误:

    PandaSQLException:(sqlite3.OperationalError)靠近“selectÐÐñÐÐÐИÐÐÐÐÐнД,min(selectМÐŨÐнÐ),语法错误天安集团1’]

    PS未指定列-应按以下方式工作:

    sqlquery = 'select * from days_ans limit 1'
    sqlquery = 'select ''Партнер'' from days_ans limit 1'
    

    我认为这个问题与有空格的列有关

    1 回复  |  直到 6 年前
        1
  •  1
  •   marc_s    6 年前

    您的单引号 '' 连接并变为空。请尝试在字符串的两侧使用双引号:

    >>> sqlquery = 'select ''Машина'', min(''Дата доставки'') from days_ans group by 1'
    >>> sqlquery
    'select Машина, min(Дата доставки) from days_ans group by 1'
    >>> sqlquery = "select ''Машина'', min(''Дата доставки'') from days_ans group by 1"
    >>> sqlquery
    "select ''Машина'', min(''Дата доставки'') from days_ans group by 1"
    

    String literal concatenation