2017-08-14 13 views
1

このリンクは、私が心に留めている質問に非常に近いです。 Python pandas groupby aggregate on multiple columnsヘルプが必要なのはクロス集計です! Python Pandas

質問を扱う主なトピックは次のとおりです。 1. Python | 2.パンダスDS | 3.グループ化| 4.集計関数| 5.効率性

私が現在持っているパンダDSは です。列名 - > Unique_Identifier |分類|製品|値

このように、データは製品ごとに識別子が繰り返されます。私は、各識別子ごとに1行を取得する情報が必要です。列は、各識別子 - 分類の組み合わせの合計(値)と同様にカウント(レコード)です。

私はgroupby(['Unique_Identifier'、 'C​​lassficiation'])を試しましたが、サイズと合計の新しい列生成部分を特定できませんでした。

また、データがクレイジーなので、私は効率性を高めています。私はパンダには初心者なので、指導者から助けを得ることが大好きです。サンプルデータは、次のようになります おかげで、 M

Index Identifier Classification Product Value 
    1   123   X   abc 10 
    2   123   X   bcd 20 
    3   123   Y   cde 30 
    4   123   Y   def 40 
    5   123   Z   efg 50 
    6   234   Z   ghi 60 
    7   234   Z   abc 70 
    8   234   X   bcd 80 
    9   345   X   cde 90 
    10   345   Y   def 10 

の予想される出力 - この

    Sum   Size 
    Identifier X Y Z X Y Z 
    123  30 70 50 2 2 1 
    234  80 NAN 130 1 NAN 2 
    345  90 10 NAN 1 1 NAN 
+0

のようなコードとあなたが期待している期待される出力を提供してください... –

+0

は、私は私の最高の知識に基づいて得たものである期待される出力を追加しました。コードは私が置くこともできるものです。私の作業コードは正確なデータに基づいており、ここでは列のエイリアスを使用しています。 – Muxipas

答えて

0

のようなものは、私は必要に応じてくれビューを取得するにはいくつかの手順を考え出しました。 Gurusは相互確認して同じことを確認できます。 STEP1:セットアップGROUPBY([ '識別子'、 '分類'])

STEP2使用グループ:合計集計関数をと '値' TEMP [ '値を']を用いてカウントAGG([ '和'、/*リセットインデックスはかなり古いインデックスを参照するより良い注文したレコードを表示するために使用される「サイズ」])reset_index()

*/

STEP3(オプション):あなたは、別の列(Values2を言うことができます)を持っている場合その列で手順2を繰り返し、識別子と分類に関する2つのデータセットをマージする必要があります

step4:piを使用しますvot(index = 'Identifier'、columns = 'Classification')

step5:必要な形式でデータセットを保存します。私はCSVを使いました。

出力はthis--

    Sum   Size 
    Identifier X Y Z X Y Z 
    123  30 70 50 2 2 1 
    234  80 NAN 130 1 NAN 2 
    345  90 10 NAN 1 1 NAN 
関連する問題