Je voudrais trouver une solution générale pour grouper un DataFrame d'une quantité spécifiée de lignes ou de colonnes. Exemple dataframe:groupby DataFrame par N colonnes ou N lignes
df = pd.DataFrame(0, index=['a', 'b', 'c', 'd', 'e', 'f'], columns=['c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7'])
c1 c2 c3 c4 c5 c6 c7
a 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0
Par exemple, je voudrais groupe par 2 lignes un temps et d'appliquer une fonction comme moyenne ou similaire. J'aimerais aussi savoir comment grouper par N colonnes et appliquer une fonction.
groupe de 2 lignes un temps prévu de sortie:
c1 c2 c3 c4 c5 c6 c7
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0
groupe de 2 colonnes un temps de sortie prévue:
0 1 2 3
a 0 0 0 0
b 0 0 0 0
c 0 0 0 0
d 0 0 0 0
e 0 0 0 0
f 0 0 0 0
après la réinitialisation de colonnes, utilisez '' axis' dans df.groupby (par lambda = x: x/N, axe = 1) .mean() 'pour le groupement de colonnes . – Zero
Luca, j'ai dit réinitialiser les colonnes 'df.columns = range (0, len (df.columns))'? Et puis, appliquez 'df.groupby (par = lambda x: x/N, axe = 1) .mean()'. – Zero
Voir https://stackoverflow.com/questions/36810595/calculate-average-of-every-x-rows-in-a-table-and-create-new-table 'np.arange' serait valide pour les colonnes comme bien (vous le changeriez en 'df.groupby (np.arange (len (df.columns)) // N, axe = 1)' – ayhan