我的df:
df_val
0.1
0.3
0.4
0.7
具有聚类的数据集是:
cl_val cluster
0.2 A
0.5 B
0.8 C
我想加入群集,以便对于df中的每一行,它都匹配到df_val在下面的群集。即第一行(0.1)的最小cl_val小于0.2,因此是集群A。对于第2行(0.3)的最小集群val,它小于是0.5,因此是集群B。例如,我想要的最终结果是:
df_val cluster
0.1 A
0.3 B
0.4 B
0.7 C
有什么想法可以在Python中完成吗?也许使用SQL?
尝试这个:
设定
df_vals = pd.DataFrame({'df_val': [0.1, 0.3, 0.4, 0.7]})
clusters = pd.DataFrame({'cl_val': [0.2, 0.5, 0.8], 'cluster': ['A','B','C']})
合并
merge_df = pd.merge_asof(df_vals, clusters, left_on='df_val', right_on='cl_val', direction='forward')
merge_df[['df_val', 'cluster']]
输出量
df_val cluster
0 0.1 A
1 0.3 B
2 0.4 B
3 0.7 C
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句