2016-07-06 5 views
0

合計される値の数はどのように数えますか?合計されている値の数をカウントする方法

私は本当に大きなDFを持っていますが、私はこのようなDFを持って言うことができます:

df1: 

    A  B  C 
0 John Pen  Apple 
1 John Printer Pie 
2 John Charger Burger 
3 Erick Battery Pizza 
4 Mandy Keyboard Bread 
5 Mandy Phone  Coffee 
6 David Computer Coke 

、別のDF:

df2: 

    A  B 
0 Pen  2 
1 Printer 5 
2 Charger 11 
3 USB  5 
4 Keyboard 8 
5 Phone  21 
6 Cup  3 

そして第三にDF:

df3: 

    A  B 
0 Erick Yes 
1 John Yes 
2 David No 
3 Mandy Yes 
4 Jared No 
5 Lisa No 

一致する値を合計しました

In: 

df = pd.merge(df1, df2, left_on='B', right_on='A', suffixes=('','1')) 
df = df.groupby('A', as_index=False)['B1'].sum() 
df = pd.merge(df3, df, on='A', how='left').rename(columns={'B1':'Sum'}).fillna('') 

Out: 

    A  B Sum 
0 Erick Yes 
1 John Yes 18 
2 David No 
3 Mandy Yes 29 
4 Jared No 
5 Lisa No 

今、私は合計されている値の数を数えようとしています。 私の希望DFは次のようになります。

Out: 

    A  B Sum Count 
0 Erick Yes   0 
1 John Yes 18  3 
2 David No   0 
3 Mandy Yes 29  2 
4 Jared No   0 
5 Lisa No   0 

私は、これは非常に単純かつ明白であるかもしれないけど、私はまだ

私はそれをどのように行うことができますがPythonのために非常に新しいんですか?

+0

共有コードを使用してみてください? – Divakar

+0

私はコードを使用しませんでした。 これはExcelファイルの一部です –

答えて

1

GROUPBY方法・カウント()DF1、DF2、DF3を作成する

df = pd.merge(df1, df2, left_on='B', right_on='A', suffixes=('','1')) 

groups = df.groupby('A', as_index=False) 
df = groups['B1'].sum() 
df['count'] = groups.count()['B1'] 

df = pd.merge(df3, df, on='A', how='left').rename(columns {'B1':'Sum'}).fillna('') 
+0

これは動作しますが、1つの列のみで動作します。一度にいくつかの列にこれをどうやって使うの? df ['count'] = groups.count()['A、' B '、' C '] –

+0

groups.count()は、各グループの各列の非ナノ値をすべて計算します。上の例では、私はsum()のために使用したカラムを選択しますが、好きなカラムを選択することができます。 –

+0

複数のラベルのラベルに角括弧を追加するdf [['counta'、 'countb'、 'countc']] = groups.count()[[A、 'B'、 'C​​']] –

1

これを試してみてください。

In [153]: df = df.groupby('A', as_index=False)['B1'].agg(['sum','count']).reset_index() 

In [154]: df = pd.merge(df3, df, on='A', how='left').rename(columns={'B1':'Sum'}).fillna('') 

In [155]: df 
Out[155]: 
     A B sum count 
0 Erick Yes 
1 John Yes 18  3 
2 David No 
3 Mandy Yes 29  2 
4 Jared No 
5 Lisa No 
関連する問題