2017-01-10 12 views
-3
import pandas as pd 

df1 = pd.DataFrame([['Dog', '2017', 100], ['Dog', '2017' ,500],['Dog', '2016' ,200],['Dog', '2016' ,150],['Cat', '2017' ,50],['Cat', '2017' ,100], 
['Cat', '2016' ,50]], columns=('Pet','Year','Amount')) 

DF1GROUPBY 2つの異なる列のPythonパンダ

Pet Year Amount 
Dog 2017 100 
Dog 2017 500 
Dog 2016 200 
Dog 2016 150 
Cat 2017 50 
Cat 2017 100 
Cat 2016 50 

私は次のように上記のデータフレームを有効にしたいと思います:

DF2

Pet Year Amount 
Dog 2017 600 
Dog 2016 350 
Cat 2017 150 
Cat 2016 50 

これは、ペットとによってグループ化されますそれらの間の金額を合計してください。

アイデア?

+1

、あなたはまた、[ドキュメント]をチェックすることができます(http://pandas.pydata.org/pandas-docs/stable/ groupby.html#cython-optimized-aggregation-functions) – jezrael

答えて

0

ソートを回避するためにMultiIndexsort=Falseを返さないためのパラメータas_index=Falseで使用groupby

print (df1.groupby(['Pet','Year'], as_index=False, sort=False).sum()) 
    Pet Year Amount 
0 Dog 2017  600 
1 Dog 2016  350 
2 Cat 2017  150 
3 Cat 2016  50