データ フレームがあり、特定の列 (つまり、特定の列の値) でグループ化したいと考えています。私は次の方法でそれを行うことができます: grouped = df.groupby(['ColumnName'])
.
この操作の結果は、一部のセルに単一の値ではなく値のセットを含めることができるテーブルとして想像できます。通常のテーブル (つまり、すべてのセルに単一の値が 1 つだけ含まれるテーブル) を取得するには、セル内の値のセットを単一の値に変換するために使用する関数を指定する必要があります。
たとえば、値のセットをそれらの合計、または最小値または最大値で置き換えることができます。私は次の方法でそれを行うことができます:grouped.sum()
などgrouped.min()
。
ここで、さまざまな列にさまざまな関数を使用したいと考えています。次の方法でできることがわかりましたgrouped.agg({'ColumnName1':sum, 'ColumnName2':min})
。
しかし、諸事情により使えませんfirst
。より詳細には、grouped.first()
動作しますが、動作grouped.agg({'ColumnName1':first, 'ColumnName2':first})
しません。その結果、 NameError: が発生しますNameError: name 'first' is not defined
。だから、私の質問は、なぜそれが起こるのか、そしてこの問題を解決する方法です.
追加した
ここで、次の例を見つけました。
grouped['D'].agg({'result1' : np.sum, 'result2' : np.mean})
私も使用する必要があるかもしれnp
ませんか?しかし、私の場合、python は「np」を認識しません。インポートする必要がありますか?