基于两个唯一列值熊猫创建集群的函数

时间:2021-01-15 20:24:06

标签: python pandas

我有一个数据框,我需要根据两列的对组合创建“集群索引”。如果有两种数字组合,它应该在新的第三列中获得自己的集群 ID。对此的任何帮助将不胜感激,因为我确信有一种方法可以在 Pandas 中做到这一点,只是还没有弄清楚。

#input dataframe
d = {'col1': [1,2,3,4,4,5,5,5,8,8], 'col2': [3,4,7,13,13,2,2,2,7,7]}
df = pd.DataFrame(data=d)
df

我正在寻找某种函数来创建这样的输出:

#expected output dataframe
d = {'col1': [1,2,3,4,4,5,5,5,8,8], 'col2': [3,4,7,13,13,2,2,2,7,7],'cluster':[0,1,2,3,3,4,4,4,5,5]}
df_cluster = pd.DataFrame(data=d)
df_cluster

1 个答案:

答案 0 :(得分:1)

您可以使用 group_info 个对象的 grouper

df['cluster'] = df.groupby(['col1', 'col2']).grouper.group_info[0]
df

enter image description here