Split Pandas DataFrame
- Split DataFrame utilizando a indexação de linhas
-
Dividir DataFrame utilizando o
groupby()
Método -
Dividir DataFrame utilizando o método
sample()
Este tutorial explica como podemos dividir um DataFrame em vários DataFrames mais pequenos utilizando indexação de linhas, DataFrame.groupby()
método, e DataFrame.sample()
método.
Utilizaremos o apprix_df
DataFrame abaixo para explicar como podemos dividir um DataFrame em vários DataFrames mais pequenos.
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")
Resultado:
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
Split DataFrame utilizando a indexação de linhas
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")
Resultado:
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 a DataFrame apprix_df
em duas partes utilizando a indexação de linhas. A primeira parte contém as duas primeiras linhas do apprix_df
DataFrame, enquanto a segunda parte contém as três últimas linhas.
Podemos especificar as filas a serem incluídas em cada divisão na propriedade iloc
. [:2,:]
representa a selecção das linhas até à linha com índice 2
exclusivo (a linha com índice 2
não está incluída) e todas as colunas da DataFrame. Assim, apprix_df.iloc[:2,:]
selecciona as duas primeiras linhas da DataFrame apprix_df
com índice 0
e 1
.
Dividir DataFrame utilizando o groupby()
Método
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 a DataFrame apprix_df
em três partes com base no valor da coluna Qualification
. As filas com o mesmo valor da coluna Qualification
serão colocadas no mesmo grupo.
A função groupby()
formará grupos com base no valor da coluna Qualification
. Extraímos então as linhas agrupadas pelo método groupby()
utilizando o método get_group()
.
Dividir DataFrame utilizando o método sample()
Podemos formar um DataFrame através de linhas de amostragem aleatórias a partir de um DataFrame utilizando o método sample()
. Podemos definir o rácio de linhas a serem amostradas a partir do DataFrame pai.
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
Amostras aleatórias de 40% das linhas do apprix_df
DataFrame e depois mostra o DataFrame formado a partir das linhas amostradas. O random_state
é definido para garantir que obtemos sempre as mesmas amostras aleatórias na amostragem.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum