如何在Pandas groupby后将Name索引转为Cluster_id列?
解决Pandas分组后添加与索引一致的Cluster_id列问题
方法一:分组时保留Name为普通列
在groupby时添加as_index=False参数,让Name保持为普通列而非索引,之后直接赋值即可:
# 分组求均值,保留Name为列 df1 = df.groupby('Name', as_index=False).mean() # 添加Cluster_id列,值与Name一致 df1['Cluster_id'] = df1['Name']
方法二:将已有的索引转为列后赋值
如果已经生成了以Name为索引的df1,可以先通过reset_index()把索引转为普通列,再添加Cluster_id:
df1 = df.groupby('Name').mean().reset_index() df1['Cluster_id'] = df1['Name']
方法三:直接利用索引值赋值
无需先转换索引,直接用索引值创建Cluster_id列,之后按需将索引转为普通列:
df1 = df.groupby('Name').mean() # 直接用索引值创建Cluster_id列 df1['Cluster_id'] = df1.index # 可选:将Name索引转为普通列 df1 = df1.reset_index()
最终效果
执行上述任意方法后,会得到符合需求的DataFrame:
Name Column1 Column2 Column3 Column4 Column5 Column6 Cluster_id 0 ALFA 376740.0 0.37 0.24 0.335 0.175 0.07 ALFA 1 Bravo 511830.0 0.52 0.16 0.080 0.260 0.00 Bravo 2 Charlie 590030.0 0.75 0.20 0.205 0.285 0.035 Charlie 3 Delta 590030.0 0.75 0.20 0.170 0.290 0.00 Delta 4 Echo 590030.0 0.75 0.20 0.110 0.315 0.030 Echo
内容的提问来源于stack exchange,提问作者Oshimiri Atata
相关产品推荐
相关产品推荐

