¿Cómo la innovación en tecnología está empoderando al sector de desarrollo de aplicaciones? 1

Cómo consultar su marco de datos de Pandas

Nodo de origen: 1017694

Cómo consultar su marco de datos de Pandas

La perspectiva de un científico de datos sobre las funciones de Python similares a SQL.


By Mateo Przybyla, Científico de datos sénior en Favor Delivery



Foto por bruce hong on Unsplash [1].

Índice del contenido

 
 

  1. Introducción
  2. Varias condiciones
  3. Fusión en varias columnas específicas
  4. Resumen
  5. Referencias

Introducción

 
 
Ya sea que esté pasando de ser un ingeniero de datos/analista de datos o quiera convertirse en un científico de datos más eficiente, consultar su marco de datos puede resultar un método bastante útil para devolver las filas específicas que desea. Es importante tener en cuenta que existe una función de consulta específica para pandas, con el nombre apropiado, query. Sin embargo, en su lugar, analizaré las otras formas en que puede imitar la consulta, el filtrado y la fusión de sus datos. Presentaremos escenarios comunes o preguntas que le haría a sus datos, y en lugar de SQL, lo haremos con Python. En los párrafos a continuación, describiré algunas formas simples de consultar filas para su marco de datos de pandas con el lenguaje de programación Python.

Varias condiciones

 
 



Data de muestra. Captura de pantalla del autor [2].

 

Como científicos de datos o analistas de datos, queremos devolver filas específicas de datos. Uno de estos escenarios es donde desea aplicar varias condiciones, todas en la misma línea de código. Para mostrar mi ejemplo, he creado algunos datos de muestra falsos de un nombre y apellido, así como su respectivo género y fecha de nacimiento. Estos datos se muestran arriba en la captura de pantalla.

Las condiciones múltiples de ejemplo responderán esencialmente a una pregunta específica, al igual que cuando usa SQL. La pregunta es, ¿qué porcentaje de nuestros datos es de género masculino? OR una persona que nació entre 2010 y 2021.

Aquí está el código que resolverá esa pregunta (hay algunas maneras de responder a esta pregunta, pero esta es mi forma específica de hacerlo):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

Para visualizar mejor este código, también he incluido esta captura de pantalla de ese mismo código de arriba, junto con la salida/resultado. También puede aplicar estas condiciones para devolver las filas reales en lugar de obtener la fracción o el porcentaje de filas del total de filas.



Código de condiciones. Captura de pantalla del autor [3].

 

Aquí está el orden de los comandos que realizamos:

  • Devolver filas con Male Gender
  • Incluir la OR función |
  • Devuelve las filas de Birthdate > 2010 y 2021
  • Combine todo eso y luego divida por la cantidad total de filas

Como puede ver, este código es similar a algo que vería en SQL. Personalmente, creo que es más fácil en pandas porque puede ser menos código, al mismo tiempo que puede ver visualmente todo el código en un lugar fácil, sin tener que desplazarse hacia arriba y hacia abajo (pero este formato es solo mi preferencia).

Fusión en varias columnas específicas

 
 



Resultado del marco de datos fusionado. Captura de pantalla del autor [4].

 

Probablemente hemos visto cómo fusionar marcos de datos en otros tutoriales, por lo que quería agregar un enfoque único que realmente no había visto, que consiste en fusionar varias columnas específicas. En este escenario, queremos unir dos marcos de datos donde se comparten dos campos entre ellos. Se podría decir que si hay aún más columnas, este método podría ser aún más útil.

Tenemos nuestro primer marco de datos, que es df, luego fusionamos nuestras columnas en un segundo marco de datos, df2. Aquí está ese código para lograr nuestro resultado esperado:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

Para visualizar mejor esta fusión y el código, he presentado la siguiente captura de pantalla. Verá cómo se ve el segundo marco de datos a continuación, con el First y Last nombres, tal como están en el primer marco de datos, pero con una nueva columna, Numeric. Luego, tenemos columnas específicas en las que queríamos fusionarnos, mientras devolvíamos columnas GenderBirthdate, Y el nuevo Numeric columna también. Las columnas son una lista de columnas, que se denomina cols.



Fusión de marco de datos. Captura de pantalla del autor [5].

 

Como puede ver, esta forma de fusionar marcos de datos es una forma sencilla de lograr los mismos resultados que obtendría de una consulta SQL.

Resumen

 
 
En este tutorial, vimos dos preguntas o consultas comunes que realizaría en SQL, pero en cambio, las hemos realizado con marcos de datos pandas en Python.

Para resumir, estos son los dos escenarios con los que trabajamos:

  1. Devolver el porcentaje de filas del conjunto de datos total de múltiples condiciones
  2. Fusionar varias columnas específicas para devolver un marco de datos final con una nueva columna

Espero que hayas encontrado mi artículo interesante y útil. Siéntase libre de comentar a continuación si está de acuerdo o en desacuerdo con estos métodos. ¿Por qué o por qué no? Ciertamente, estos pueden aclararse aún más, pero espero haber podido arrojar algo de luz sobre algunas de las formas en que puede usar pandas y Python en lugar de SQL. ¡Gracias por leer!

No dude en consultar mi perfil, matt przybylay otros artículos, así como comunicarse conmigo en LinkedIn.

No estoy afiliado a estas empresas.

 
Referencias

[1] Foto de bruce hong on Unsplash(2018)

[2] M. Przybyla, captura de pantalla de datos de muestra, (2021)

[3] M. Przybyla, captura de pantalla del código de condiciones, (2021)

[4] M. Przybyla, captura de pantalla del resultado del marco de datos fusionado, (2021)

[5] M. Przybyla, captura de pantalla de combinación de datos, (2021)

 
Bio: Mateo Przybyla es científico de datos sénior en Favor Delivery y redactor técnico independiente, especialmente en ciencia de datos.

Original. Publicado de nuevo con permiso.

Relacionado:

Fuente: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

Sello de tiempo:

Mas de nuggets