2017-12-02 26 views
0

私はピボットを利用してデータをロールアップしています。同じテーブルの2つのインデックス(列名?)を1つに結合しますか?

year 2012 
month 1  2 
name  
annie 2  0 
david 0  3 

私が思う意味:フォームにデータがあること集計

date_pivot = pd.pivot_table(date_pivot, index=['name'], columns=['year','month'], aggfunc=len) 

year month name 
2012 1  annie 
2012 1  annie 
2012 2  david 
2012 2  david 
2012 2  david 

は私がピボットを作成するために、次のコードを使用:データの形式は列名は2つの別々の部分に分割されています。私は、後に列名のいくつかの範囲を定義することができるように

2012.1 2012.2 

:私は、フォームの単一の列名にこれらを組み合わせることを希望しています。これどうやってするの?

答えて

0

あなたが探している値で別の列を作成し、その列に基づいてピボットすることができると思います。

date_pivot['year_month'] = date_pivot['year'].map(str) + "." + date_pivot['month'] 
date_pivot = pd.pivot_table(date_pivot, index=['name'], columns=['year_month'], aggfunc=len) 

EDIT

あなたのコラムように正しく並べ替え新しい列を作成するときには、おそらくzfill(2)であなたヶ月パッドになるでしょう。そうでなければ2012.10は月の前にソートします2012.2

0

列を再作成し、

date_pivot.columns=list(map('{0[0]}.{0[1]}'.format, date_pivot.columns.values.tolist())) 
date_pivot 
Out[266]: 
     2012.1 2012.2 
name     
annie  2.0  NaN 
david  NaN  3.0 
戻ってそれをassgin
関連する問題