我想重塑一个保存id、特征、特征代码和每个特征代码各自值的数据框架。每个特性都可以有几个属性,只有当这个属性中有一个值时,它才会在表中作为一行列出。这些值是绝对数字,表示这个特征在我的对象(ID)中出现的频率。
我知道所有可能的属性:
。特征颜色:["暖", "冷"]如功能数量:("0-10","11-20","21-30","31-40","41 - 100")
它看起来像这样:
<表类>
ID
功能
属性值 tbody><<tr>ID01 颜色温暖5 ID01 颜色 冷 3 ID01 数量清廉 1 ID01 数量21 - 30 2 ID01 数量41 - 100 7 ID02 颜色温暖9 ID02 数量清廉 2 ID02 数量11日至20日 2 ID02 数量31-40 1 表类>
尝试:
df["tmp"] = df["Feature"] + "_" + df["Attribute"]
df_out = df.pivot(index="ID", columns="tmp", values="Value")
df_out.columns.name = None
print(df_out.reset_index())
打印:
ID color_cold color_warm number_0-10 number_11-20 number_21-30 number_31-40 number_41-100
0 ID01 3.0 5.0 1.0 NaN 2.0 NaN 7.0
1 ID02 NaN 9.0 2.0 2.0 NaN 1.0 NaN