English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ejemplos específicos de operaciones SQL en Pandas
Dado que muchos usuarios potenciales de Pandas tienen conocimientos de SQL, esta página tiene como objetivo proporcionar algunos ejemplos que ilustran cómo utilizar Pandas para realizar varias operaciones SQL.
import pandas as pd url = 'https://raw.github.com/pandasdev/ pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print(tips.head())
Los resultados de la ejecución son los siguientes:
total_bill tip sexo fumador día hora tamaño 0 16.99 1.01 Femenino No Sol Cena 2 1 10.34 1.66 Masculino No Sol Cena 3 2 21.01 3.50 Masculino No Sol Cena 3 3 23.68 3.31 Masculino No Sol Cena 2 4 24.59 3.61 Femenino No Sol Cena 4
En SQL, la selección se realiza con una lista separada por comas de las columnas elegidas (o utilizando*para seleccionar todas las columnas):
SELECT total_bill, tip, fumador, hora from tips LIMIT 5;
Con Pandas, para realizar la selección de columnas se completa pasando una lista de nombres de columnas al DataFrame:
tips[['total_bill', 'tip', 'fumador', 'hora']].head(5)
Veamos un ejemplo completo:
import pandas as pd url = 'https://raw.github.com/pandasdev/ pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print(tips[['total_bill', 'tip', 'fumador', 'hora']].head(5)
Los resultados de la ejecución son los siguientes:
total_bill tip fumador hora 0 16.99 1.01 No Cena 1 10.34 1.66 No Cena 2 21.01 3.50 No Cena 3 23.68 3.31 No Cena 4 24.59 3.61 No Cena
Llamar a DataFrame sin lista de nombres de columnas mostrará todas las columnas (al estilo de SQL de*).
Filtrar en SQL mediante cláusula WHERE.
SELECT * from tips WHERE time = 'Cena' LIMIT 5;
DataFrame se puede filtrar de múltiples maneras. El método más intuitivo es usar índices booleanos.
tips[tips['time'] == 'Cena'].head(5)
Vamos a ver un ejemplo completo
import pandas as pd url = 'https://raw.github.com/pandasdev/ pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print(tips[tips['time'] == 'Cena'].head(5)
Los resultados de la ejecución son los siguientes:
total_bill tip sexo fumador día hora tamaño 0 16.99 1.01 Femenino No Sol Cena 2 1 10.34 1.66 Masculino No Sol Cena 3 2 21.01 3.50 Masculino No Sol Cena 3 3 23.68 3.31 Masculino No Sol Cena 2 4 24.59 3.61 Femenino No Sol Cena 4
La sentencia superior transmitirá una serie de True / Objeto False transmitido a DataFrame, y se devuelven todas las filas con True.
Esta operación obtiene el número de registros en cada grupo del conjunto de datos completo. Por ejemplo, consulte el número de registros agrupados por género:
SELECT sexo, count(*) from tips GROUP BY sexo;
La operación en Pandas es la siguiente:
tips.groupby('sexo').size()
Vamos a ver un ejemplo completo
import pandas as pd url = 'https://raw.github.com/pandasdev/ pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) print tips.groupby('sexo').size()
Los resultados de la ejecución son los siguientes:
sexo Mujer 87 Hombre 157 dtype: int64
Uso de LIMIT en SQL para devolver N filas:
SELECT * from tips LIMIT 5 ;
Operaciones en Pandas son las siguientes:
tips.head(5)
Vamos a ver un ejemplo completo
import pandas as pd url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv' tips=pd.read_csv(url) tips = tips[['smoker', 'day', 'time']].head(5) print tips
Los resultados de la ejecución son los siguientes:
día de fumador tiempo 0 No Sun Dinner 1 No Sun Dinner 2 No Sun Dinner 3 No Sun Dinner 4 No Sun Dinner