熊猫变换表

熊猫变换表

问题描述:

例如,我有一个这样的表。 enter image description here熊猫变换表

然后我想用大熊猫改造它这样

enter image description here

我怎会this.thx!

+1

的可能的复制[如何在转动一个大熊猫数据帧?](https://*.com/questions/28337117/how-to-pivot- a-dataframe-in-pandas) – Zero

+0

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

使用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 –

使用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