1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pivot_tableの簡単なサンプルです。

Last updated at Posted at 2020-11-02

#テストデータ


data=[
{"日付":"1/2" , "氏名":"山田" ,"デザート" : "りんご"  ,"おかず"  :"餃子" },
{"日付":"1/3" , "氏名":"山田" ,"デザート" : "りんご"  ,"おかず"  :"餃子"   },
{"日付":"1/4" , "氏名":"山田" ,"デザート" : "ばなな"  ,"おかず"  :"煮魚"   },
{"日付":"1/5" , "氏名":"山田" ,"デザート" : "りんご"   ,"おかず"  :"餃子"  },

{"日付":"1/2" , "氏名":"佐々木" ,"デザート" : "ミカン"   ,"おかず"  :"餃子"  },
{"日付":"1/3" , "氏名":"佐々木" ,"デザート" : "りんご"   ,"おかず"  :"餃子"  },
{"日付":"1/4" , "氏名":"佐々木" ,"デザート" : "りんご"   ,"おかず"  :"餃子"  },
{"日付":"1/5" , "氏名":"佐々木" ,"デザート" : "りんご"   ,"おかず"  :"シチュー"  },

]

import pandas as pd
df=pd.DataFrame(data)
df

    日付   氏名 デザート   おかず
0  1/2   山田  りんご    餃子
1  1/3   山田  りんご    餃子
2  1/4   山田  ばなな    煮魚
3  1/5   山田  りんご    餃子
4  1/2  佐々木  ミカン    餃子
5  1/3  佐々木  りんご    餃子
6  1/4  佐々木  りんご    餃子
7  1/5  佐々木  りんご  シチュー

#「氏名」毎の「デザート」を数えます。

df.pivot_table(values= 'おかず', index='氏名', columns='デザート' , aggfunc="count" , fill_value=0)

values= 'おかず'を入れないと残っているcolumns毎に集計される
aggfunc="count" で件数
fill_value=0 を入れないと0件のところがNaN になる。

結果

デザート  ばなな  りんご  ミカン
氏名                 
佐々木     0    3    1
山田      1    3    0

参考
note.nkmk.me
pandas.pivot_table

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?