2017-08-11 145 views
0

例如,我有一個這樣的表。 enter image description here熊貓變換表

然後我想用大熊貓改造它這樣

enter image description here

我怎會this.thx!

+1

的可能的複製[如何在轉動一個大熊貓數據幀?](https://stackoverflow.com/questions/28337117/how-to-pivot- a-dataframe-in-pandas) – Zero

+0

和https://stackoverflow.com/q/31802574 – Zero

回答

2

使用pivotunstack

df = df.pivot(index='name', columns='media', values='amount') 

df = df.set_index(['name','media')]['amount'].unstack() 

如果在對名稱的重複和媒體需要pivot_table或聚集體groupby和骨料mean可改爲summedian,...最後通過unstack重塑:

df = df.pivot_table(index='name', columns='media', values='amount', aggfunc='mean') 

df = df.groupby(['name','media')]['amount'].mean().unstack() 
+0

啊!感謝@ jezrael –

0

使用pd.factorize

f1, u1 = pd.factorize(df.name.values) 
f2, u2 = pd.factorize(df.media.values) 
pd.DataFrame(
    np.bincount(
     f1 * u2.size + f2, df.amount.values, u1.size * u2.size 
    ).reshape(u1.size, u2.size).astype(df.amount.dtype), 
    u1, u2 
) 

     TV internet newspaper 
andy  6  10   18 
steve  8   0   0 
richard 0  14   9