группировка данных без группировки по методам в python - PullRequest
1 голос
/ 18 июня 2020

У меня есть набор данных 1M row. А внутри у меня 50к уникальных person_id. Цель состоит в том, чтобы применить алгоритм DBSCAN индивидуально к этим 50 тысячам уникальных person_id. Так что в основном мне нужно создать кластеры для каждого person_id. Сейчас я делаю примерно следующее:

def DBSCAN(x):
    cluster = DBSCAN(eps=0.5, min_samples=3).fit(x)
    cluster_labels = cluster.labels_
    return cluster_labels

grouped = df_sample.groupby(["person_id"])
grouped.apply(lambda x: DBSCAN(x))

Но это означает, что я запускаю функцию пятьдесят тысяч раз. Потому что кластеризацию нужно применять индивидуально к каждому person_id.

Я хочу запускать код только один раз для каждого уникального person_id вместо 50k раз. Есть ли способ создать поиск, не запуская функцию снова и снова для каждого person_id?

Это не обязательно должен быть единственный python, также я могу SQL , pyspark, et c. Мне нужно решение, чтобы сбежать из этого l oop.

...