[英]Arranging columns in pivot_table, Pandas
我有一個關於數據透視表中列重新排列的問題。 我想按月份對列進行分組,但安排如下:
JAN FEB
X,Y,X/Y X,Y,X/Y ....
當前輸出為:
JAN FEB JAN FEB JAN ...
X X ... Y Y ... X/Y ...
構建多列數據透視表時,我已經注意到在Excel中實現的相同行為。
請參閱下面的示例。 輸出具有第一種格式。 謝謝
from pandas import DataFrame,pivot_table
import numpy as np
from datetime import datetime
names=["a","b","c","a","b"]
dates=["20/01/2013","21/01/2013","22/02/2013", "01/03/2013","01/03/2013"]
dico={"x":[1,3,5,7,9], "y":[2,4,6,8,10], "date":dates, "name":names}
df=DataFrame(dico)
df["month"]=[datetime.strptime(x,'%d/%m/%Y').month for x in dates ]
print df
mpivot=pivot_table(df, values=["x","y"],cols=["month"], rows="name",aggfunc=np.sum)
print mpivot
創建此數據透視表后,您可以執行以下操作:
In [11]: p = pivot_table(df, values=["x","y"], cols=["month"],
rows="name", aggfunc=np.sum)
In [12]: p
Out[12]:
x y
month 1 2 3 1 2 3
name
a 1 NaN 7 2 NaN 8
b 3 NaN 9 4 NaN 10
c NaN 5 NaN NaN 6 NaN
In [13]: p.reorder_levels([1, 0], axis=1).sort_index(axis=1)
Out[13]:
month 1 2 3
x y x y x y
name
a 1 2 NaN NaN 7 8
b 3 4 NaN NaN 9 10
c NaN NaN 5 6 NaN NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.