Je suis très nouveau à pandas et j'essaie d'utiliser groupby
. J'ai un df avec plusieurs colonnes.
col1
, puis triez chaque groupe par col5
puis faites reset_index
pour obtenir toutes les lignes de la trame de données.AttributeError: Cannot access callable attribute 'reset_index' of 'DataFrameGroupBy' objects, try using the 'apply' method
.Mon cadre de données d'entrée:
col1 | col2 | col3 | col4 | col5
=================================
A | A1 | A2 | A3 | DATE1
A | B1 | B2 | B3 | DATE2
Mon code:
df.sort_values(['col5'],ascending=False).groupby('col1').reset_index()
vous pouvez utiliser
grouped = df.sort_values(['col5'],ascending=False).groupby('col1',as_index = False).apply(lambda x: x.reset_index(drop = True))
grouped.reset_index().drop(['level_0','level_1'],axis = 1)
Reportez-vous à ce lien stackoverflow pour une explication claire avec un exemple Comment réinitialiser les index d'un DataFrame pour tous les groupes en une seule étape?
Vous pouvez essayer le code ci-dessous, j'ai eu un problème similaire.
grouped=data.groupby(['Colname'])
grouped.apply(lambda _df: _df.sort_values(by=['col_to_be_sorted']))