J'ai une dataframe dont je ne veux pas créer de sous-ensembles dans une boucle en fonction des valeurs d'une colonne.Créer des sous-ensembles dans une boucle en fonction des valeurs d'une colonne dans pandas dataframe
Voici un exemple df:
c1 c2 c3
A 1 2
A 2 2
B 0 2
B 1 1
Je souhaite créer des sous-ensembles comme si dans une boucle
première itération, sélectionner toutes les rangées dans lesquelles C1 = A, et seules les colonnes 2 et 3 , d'autre part, toutes les lignes dans lesquelles C1 = B, et seulement C2 et 3.
I ont essayé le code suivant:
for level in enumerate(df.loc[:,"C1"].unique()):
df_s = df.loc[df["C1"]==level].iloc[:, 1:len(df.columns)]
#other actions on the subsetted dataframe
mais le sous-ensemble n'est pas effectué. Comment itérer throudh les niveaux d'une colonne
Par exemple, dans R, il serait
for (le in levels(df$C1){
dfs <- df[df$C1==le,2:ncol(df)]
}
Merci
Je cherchais aussi sur la façon de sous-ensemble des lignes et des colonnes dans le même appel au lieu de mon .loc et .iloc dans la même ligne de code. – Boidot
@Boidot vous pouvez vérifier la réponse de Psidom. – Wen