генератор списков из pandas dataframe - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть датафрейм для панд вроде

   node    centroid
    1         1
    2         2
    3         4
    5         6
    7         2
    4         1
    8         4
    10        1

как я могу создать генератор списков по этому набору данных таким образом, чтобы узлы с одинаковым центроидом были в одном списке? Мне нужно, чтобы результат был похож на возврат по клику (https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.algorithms.clique.find_cliques.html)

1 Ответ

0 голосов
/ 14 ноября 2018

Вы используете yield для создания генераторов.

import pandas as pd
import random
df = pd.DataFrame({"node": [random.randint(1, 11) for _ in range(8)],
                   "centroid": [random.randint(1, 5) for _ in range(8)]})

def list_gen(df):
  for x in df.centroid.unique():
    yield df[df["centroid"] == x].node.values

[x for x in list_gen(df)]

Это даст пустые массивы, но вы можете деконструировать их обратно в обычный list, просто передав их в list.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...