熊猫变换表
答
df = df.pivot(index='name', columns='media', values='amount')
df = df.set_index(['name','media')]['amount'].unstack()
如果在对名称的重复和媒体需要pivot_table
或聚集体groupby
和骨料mean
可改为sum
,median
,...最后通过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
的可能的复制[如何在转动一个大熊猫数据帧?](https://stackoverflow.com/questions/28337117/how-to-pivot- a-dataframe-in-pandas) – Zero
和https://stackoverflow.com/q/31802574 – Zero