2017-02-21 10 views
0

私は、purchase_day、customer_name、products_purchasedの3つの列を持つpandas dfを持っています。groupby by pandasで行インデックスがつぶれる

各顧客が店舗に訪れた日数の配列を返したいとします。残念ながら、これで enter image description here

テーブルを返され、私は理由CUSTOMER_NAMEとpurchase_days」が上がらない珍しい形式(のそれにGROUPBYを実行することはできません。だから私は次のようになり、テーブルを返す

gpd = df.groupby(by=['customer_name', 'purchase_day']).count() 

を使用しました最初の行ではt、2番目の行ではt)。

各顧客が店舗に訪れた購入日の数をカウントできるように、ヒントがありますか?

+0

紙の上に図面の代わりにコードとして実際の結果を追加できますか?私は努力を感謝する:P – miradulo

答えて

1

インデックスのリセットが必要です。

あなたが複数の列で.groupbyデータフレームを適用しているので、

データフレームが返さはMultiIndexを持っているでしょう。

gpd = df.groupby(by=['customer_name', 'purchase_day']).count().reset_index()

また、あなたはまだmultiindexedデータフレームで.groupbyを適用することができます。方法pandas.DataFrame.groupbydocumentation

あなたはGROUPBY列としてmultiindicesを設定するために使用できるパラlevelがあります。

hereをチェックアウトできるSOスレッドがあります。

関連する問題