将列的值分解为列,并按另一列分组,同时显示另一列的值



我有一个数据帧df

id 类别
AB 2
BC 3
AB 4
AB 5
BC 6
BC 2
BC 4
AB 8

您可以使用Pivot。因此,您可以定义将哪列的值转换为单独的列columns=[类别']。以及应使用哪一列来填充相应的结果values='value',基于您想要的聚合函数:aggfunc=np.mean

table = pd.pivot_table(df, values='value', index=['id'],
columns=['category'], aggfunc=np.mean)

您可以尝试以下操作吗:

df.groupby(['id', 'category']).mean().unstack(fill_value=0)

尝试.pivot_table:

x = df.pivot_table(
index="id", columns="category", values="value", aggfunc="mean"
).reset_index()
x.columns.name = None
print(x)

打印:

id  big  small
0  AB  6.5    3.0
1  BC  3.5    4.0

最新更新