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
- Introducción
- Varias condiciones
- Fusión en varias columnas específicas
- Resumen
- 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 Gender
, Birthdate
, 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:
- Devolver el porcentaje de filas del conjunto de datos total de múltiples condiciones
- 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
- "
- &
- 2021
- Todos
- analista
- Analytics
- artículo
- auto
- código
- Columna
- Algunos
- Empresas
- datos
- proceso de datos
- Ciencia de los datos
- científico de datos
- deep learning
- entrega
- Director
- ingeniero
- certificados
- falso
- Terrenos
- Nombre
- formato
- Gratuito
- freelance
- función
- Género
- GPU
- esta página
- Cómo
- Como Hacer
- HTTPS
- IT
- únete
- idioma
- APRENDE:
- aprendizaje
- luz
- línea
- Etiqueta LinkedIn
- Lista
- máquina de aprendizaje
- ML
- nombres
- en línea
- habiertos
- de código abierto
- solicite
- Otro
- la perspectiva
- presente
- Mi Perfil
- Programación
- Python
- Resultados
- Ciencia:
- los científicos
- compartido
- sencillos
- habilidades
- So
- RESOLVER
- Spot
- SQL
- Historias
- Técnico
- recomendaciones
- parte superior
- tutoriales
- Tutoriales
- QUIENES
- escritor
- X