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