我有一个像这样的熊猫数据框
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)
这样的结果答案 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
。