2017-12-02 101 views
0

我正在利用數據透視來捲起數據。該數據的形式爲:將同一個表中的兩個索引(列名?)合併爲1?

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

我用下面的代碼來創建一個支點:

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

它彙集的數據到表單:

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

含義,我認爲列名被分成兩個獨立的部分。我想這些組合成形式的單個列名:

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) 

編輯

,使您的列進行排序正確創建新列時,您可能會想墊您個月zfill(2)。否則2012.10將在月份之前排序2012.2

0

重新創建列和assgin回

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