2017-04-27 3 views
1

特定のフィールドに基づいて合計とカウントの両方を行うデータがあります。私のデータは、このPythonを使用してデータを集約する

Value ID Object 
100 ABD Type1 
200 ABD Type1 
400 ABD Type2 
200 BCE Type1 
100 BCE Type1 
800 JHO Type3 
600 TVM Type4 

のように見えると私はIDに関連ユニークオブジェクトの数を数えているところこれに取得しようともまた、そのID

ValueSum ID CountObject 
700  ABD 2 
300  BCE 1 
800  JHO 1 
600  TVM 1 
に関連した合計値を合計しています

.groupby.()機能を.count().sum()と一緒に使用していますが、適切な形式で表示されないようです。

ご迷惑をおかけして申し訳ありません。

ありがとうございます!

+1

あなたは 'pandas'を使用していますか? –

+1

あなたの入力、テキストファイル、データフレーム、生の文字列は何ですか? – RomanPerekhrest

答えて

1

あなたがgroupbyaggを使用してDFに複数の列に実行するのfuncsの辞書を渡すことができます。

ここ
In [289]: 
gp = df.groupby('ID', as_index=False).agg({'Value':sum, 'Object':'nunique'}) 
gp = gp.rename(columns={'Value':'ValueSum', 'Object':'ObjectCount'}) 
gp 

Out[289]: 
    ID ValueSum ObjectCount 
0 ABD  700   2 
1 BCE  300   1 
2 JHO  800   1 
3 TVM  600   1 

我々は、対応する列名と実行するFUNCを持つ辞書を渡しますカウントを使用するnuniqueこれは一意の値の数を返します

+0

これは本当に役に立ちます。唯一のことは、ユニークなレコードの数を数えないことです。それは総数を数えます。 – Taylrl

+0

申し訳ありません、 'nunique'にする必要があります。 – EdChum

関連する問題