熊猫数据框列表的生成器

时间:2018-11-13 20:30:15

标签: python pandas list generator

我有一个像这样的熊猫数据框

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

如何通过此数据集以相同质心的节点位于同一列表中的方式创建列表生成器? 我需要像find-clique return(https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.algorithms.clique.find_cliques.html

这样的结果

1 个答案:

答案 0 :(得分:1)

您使用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)]

这将提供numpy数组,但是您只需将它们传递到list即可将其解构为常规list