¿Hay alguna forma de escribir una consulta SQL de pandas en varias líneas con comentarios?

Arthur Morris

Al escribir una expresión regular, es posible escribir la expresión en varias líneas e incluir la anotación, luego compilar la expresión usando la re.VERBOSEopción antes de pasar la versión compilada. Me gustaría hacer algo similar con un pandas.read_sql_query.

Por ejemplo, en lugar de:

result = pd.read_sql_query('select a.gvkey, a.tic, a.datadate as fyearend, year(a.datadate) as year, month(a.datadate) as fyrc, b.datadate, month(b.datadate) as month, b.trt1m from COMPM.FUNDA a join COMPM.SECM b on a.gvkey = b.gvkey and year(a.datadate) = year(b.datadate) where a.TIC = "IBM" and a.datafmt = "STD" and a.consol="C" and a.indfmt = "INDL" and year(a.datadate)>1980', engine)

Me gustaría escribir algo como:

q = """select a.gvkey, 
    a.tic,                      #COMMENTS
    a.datadate as fyearend,     #COMMENTS
    year(a.datadate) as year,   #COMMENTS
    month(a.datadate) as fyrc, b.datadate, 
    month(b.datadate) as month, 
    b.trt1m 
    from COMPM.FUNDA a join COMPM.SECM b on a.gvkey = b.gvkey and year(a.datadate) = year(b.datadate) 
    where a.TIC = "IBM" 
        and a.datafmt = "STD" 
        and a.consol="C" 
        and a.indfmt = "INDL" 
        and year(a.datadate)>1980
"""

result = p.read_sql_query(q ,engine)

Mi pregunta está relacionada con esta pregunta sobre la división de comandos de Python en varias líneas, pero me gustaría agregar comentarios dentro de la consulta.

Como mencioné, lo que me gustaría hacer en el caso de pandas / SQL es similar a lo que se puede hacer en el caso de expresión regular con re.VERBOSE. Aquí hay un ejemplo con expresiones regulares:

pattern = r'''\s(shares?| #COMMENTS
            warrants?|       #COMMENTS
            stock|           #AND SO ON...
            (non)?vest(ed)?
            )\b             
            '''
crit = re.compile(pattern_nopt, re.VERBOSE)
match=re.search(crit, string)

Esto haría que la consulta sea más legible y me parece importante anotar las consultas de forma exhaustiva al compartir código con los coautores.

mgc

Sí, funcionará, pero debe usar el delimitador de comentarios correcto para SQLite :
--para un comentario en línea
/* foo.. */(como en C) para un comentario de varias líneas

Entonces se verá así:

q = """select a.gvkey, 
    a.tic,                      -- COMMENTS
    a.datadate as fyearend,     -- COMMENTS
    year(a.datadate) as year,   /* Another very long
    and multi-lines comment... */
    month(a.datadate) as fyrc, b.datadate, 
    month(b.datadate) as month, 
    b.trt1m from COMPM.FUNDA a join COMPM.SECM b on a.gvkey = b.gvkey and year(a.datadate) = year(b.datadate) 
    where a.TIC = "IBM" 
        and a.datafmt = "STD" 
        and a.consol="C" 
        and a.indfmt = "INDL" 
        and year(a.datadate)>1980
"""

result = p.read_sql_query(q, conn)

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

¿Hay alguna forma de escribir una consulta SQL de pandas en varias líneas con comentarios?

¿Hay alguna forma de formatear una línea en varias líneas con continuación?

¿Hay alguna forma de agregar varias filas de Pandas en una sola fila con columnas adicionales?

¿Hay alguna forma de llamar a varias funciones en el mismo objeto con una línea?

¿Hay alguna forma de eliminar todas las líneas de comentarios en Sublime Text 3?

¿Hay alguna forma de deshabilitar la inserción automática de caracteres * en los comentarios de varias líneas de VIM?

¿Hay alguna forma de fusionar varias consultas de actualización en una sola consulta?

¿Hay alguna forma de dividir una línea CHECK en varias líneas en llvm-lit?

¿Hay alguna forma de escribir comentarios usando jstl?

Cómo dividir una condición "si" en líneas de varias líneas con comentarios

¿Hay alguna forma de escribir dos declaraciones "in" en una?

¿Hay alguna forma de ver un archivo json en varias líneas en pycharm?

¿Hay alguna forma de mantener varias líneas al imprimir en un archivo .txt en Python?

¿Hay alguna forma de generar una cadena de consulta con parámetros tanto en línea como indexados?

¿Hay alguna forma de identificar filas que coinciden con una condición varias veces en varias columnas en R?

¿Hay alguna forma de obtener documentos y las facetas asociadas en una consulta con MongoDb?

¿Hay alguna forma de obligar a SQL Server a utilizar muestras de datos recientes en una consulta?

¿Hay alguna forma de obtener comentarios de una función Future en Flutter?

¿Hay alguna forma de formatear la información sobre herramientas de gráficos de varias líneas en una sola línea?

¿Hay alguna manera de mostrar una cadena de varias líneas en Javascript?

¿Hay alguna forma de eliminar duplicados de una tabla con una sola columna en SQL Server?

¿Hay alguna forma de convertir columnas de pandas con una lista de dictados anidados en filas?

¿Hay alguna manera mejor de agregar una sola línea separada a varias líneas en PHP?

¿Hay alguna manera mejor de agregar una sola línea separada a varias líneas en PHP?

¿Hay alguna forma de mostrar elementos de una matriz en líneas separadas de un TextBox?

¿Existe una forma sencilla de escribir varias líneas en un archivo de texto?

¿Hay alguna forma de devolver varios resultados no relacionados en una consulta SQL?

¿Hay alguna forma de crear comentarios multilínea en Python?

¿Hay alguna forma de crear comentarios multilínea en Python?

TOP Lista

  1. 1

    ¿Cómo ocultar la aplicación web de los robots de búsqueda? (ASP.NET)

  2. 2

    Kibana 4 , making pie chart , error message

  3. 3

    Manera correcta de agregar referencias al proyecto C # de modo que sean compatibles con el control de versiones

  4. 4

    récupérer les noms de clés depuis Firebase react-native

  5. 5

    OAuth 2.0 utilizando Spring Security + WSO2 Identity Server

  6. 6

    Cómo eliminar o caducar las cookies en Chrome usando asp.net

  7. 7

    desbordamiento: oculto no funciona al hacer zoom en un iframe de YouTube usando transformar

  8. 8

    Cómo extraer una palabra clave (cadena) de una columna en pandas dataframe en python

  9. 9

    Link library in Visual Studio, why two different ways?

  10. 10

    선언되지 않은 유형 'MessagingDelegate'사용

  11. 11

    actualizar el contenido de la vista de reciclaje falla en la hoja inferior

  12. 12

    Ver todos los comentarios en un video de YouTube

  13. 13

    Problema con la vista de impresión de PDF

  14. 14

    ¿Cómo pintar el Dropline de un RowHeader-JTable en el Main-JTable durante un DragAndDrop?

  15. 15

    Pregunta de fórmula de desplazamiento y transposición de Excel / Google Sheets

  16. 16

    ¿Cómo puedo hacer accesible la información de color en tablas HTML?

  17. 17

    ¿Cómo generalizar el JSON en el procedimiento almacenado?

  18. 18

    Recortar fotos rectangulares de escaneos en OpenCV con Python

  19. 19

    2D 배열에 대한 Numpy 요소 별 평균 계산

  20. 20

    Typescript의 "window"전역 개체에 "adsbygoogle"애드 센스 속성을 추가하는 방법은 무엇입니까?

  21. 21

    Error: la ejecución falló para la tarea ': app: compileDebugJavaWithJavac'. java.io.FileNotFoundException:

CalienteEtiquetas

Archivo