Dividir DataFrame de Pandas
- Dividir un DataFrame usando la indexación de filas
-
Dividir el DataFrame utilizando el método
groupby() -
Dividir el DataFrame usando el método
sample()
Este tutorial explica cómo podemos dividir un DataFrame en múltiples DataFrames más pequeños utilizando la indexación de filas, el método DataFrame.groupby() y el método DataFrame.sample().
Utilizaremos el DataFrame apprix_df para explicar cómo podemos dividir un DataFrame en múltiples DataFrames más pequeños.
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MCA", "PhD", "BE"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
Producción :
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MCA
3 Samir Consultant PhD
4 Binam Engineer BE
Dividir un DataFrame usando la indexación de filas
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MCA", "PhD", "BE"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
apprix_1 = apprix_df.iloc[:2, :]
apprix_2 = apprix_df.iloc[2:, :]
print("The DataFrames formed by splitting of Apprix Team DataFrame are: ", "\n")
print(apprix_1, "\n")
print(apprix_2, "\n")
Producción :
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MCA
3 Samir Consultant PhD
4 Binam Engineer BE
The DataFrames formed by splitting the Apprix Team DataFrame are:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
Name Post Qualification
2 Manish System Admin MCA
3 Samir Consultant PhD
4 Binam Engineer BE
Divide el DataFrame apprix_df en dos partes utilizando la indexación de filas. La primera parte contiene las dos primeras filas del DataFrame apprix_df, mientras que la segunda parte contiene las tres últimas filas.
Podemos especificar las filas que se incluirán en cada división en la propiedad iloc. La propiedad [:2,:] representa la selección de las filas hasta la fila con índice 2 exclusivo (la fila con índice 2 no se incluye) y todas las columnas del DataFrame. Por lo tanto, apprix_df.iloc[:2,:] selecciona las dos primeras filas del DataFrame apprix_df con índice 0 y 1.
Dividir el DataFrame utilizando el método groupby()
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MS", "PhD", "MS"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
groups = apprix_df.groupby(apprix_df.Qualification)
ms_df = groups.get_group("MS")
mba_df = groups.get_group("MBA")
phd_df = groups.get_group("PhD")
print("Group with Qualification MS:")
print(ms_df, "\n")
print("Group with Qualification MBA:")
print(mba_df, "\n")
print("Group with Qualification PhD:")
print(phd_df, "\n")
Resultado:
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MS
3 Samir Consultant PhD
4 Binam Engineer MS
Group with Qualification MS:
Name Post Qualification
1 Rabindra CTO MS
2 Manish System Admin MS
4 Binam Engineer MS
Group with Qualification MBA:
Name Post Qualification
0 Anish CEO MBA
Group with Qualification PhD:
Name Post Qualification
3 Samir Consultant PhD
Divide el DataFrame apprix_df en tres partes en función del valor de la columna Qualification. Las filas con el mismo valor de la columna Qualification se colocarán en el mismo grupo.
La función groupby() formará grupos basados en el valor de la columna Qualification. Luego extraemos las filas agrupadas por el método groupby() utilizando el método get_group().
Dividir el DataFrame usando el método sample()
Podemos formar un DataFrame muestreando filas al azar de un DataFrame utilizando el método sample(). Podemos establecer la proporción de filas a muestrear del DataFrame padre.
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MS", "PhD", "MS"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
random_df = apprix_df.sample(frac=0.4, random_state=60)
print("Random split from the Apprix Team DataFrame:")
print(random_df)
Resultado:
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MS
3 Samir Consultant PhD
4 Binam Engineer MS
Random split from the Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
4 Binam Engineer MS
Muestrea aleatoriamente el 40% de las filas del DataFrame apprix_df y luego muestra el DataFrame formado por las filas muestreadas. El random_state se establece para asegurar que obtenemos las mismas muestras aleatorias en el muestreo cada vez.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma
