私はpandasに非常に慣れており、groupby
を使用しようとしています。複数の列を持つdfがあります。
col1
でグループ化し、各グループをcol5
で並べ替えてから、reset_index
を実行して、データフレームのすべての行を取得します。AttributeError: Cannot access callable attribute 'reset_index' of 'DataFrameGroupBy' objects, try using the 'apply' method
が発生します。私の入力データフレーム:
col1 | col2 | col3 | col4 | col5
=================================
A | A1 | A2 | A3 | DATE1
A | B1 | B2 | B3 | DATE2
私のコード:
df.sort_values(['col5'],ascending=False).groupby('col1').reset_index()
あなたは使うことができます
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)
例を使用した明確な説明については、このstackoverflowリンクを参照してください すべてのグループのDataFrameのインデックスを1つのステップでリセットする方法
あなたは以下のコードを試すことができます、私は同様の問題がありました。
grouped=data.groupby(['Colname'])
grouped.apply(lambda _df: _df.sort_values(by=['col_to_be_sorted']))