首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图形创建NoneType

图形创建NoneType
EN

Stack Overflow用户
提问于 2022-09-23 11:18:02
回答 2查看 77关注 0票数 0

我试图从一个dask_cudf DataFrame创建一个图形,但是这个图形没有错误信息。我用同样的数据集也用熊猫的数据做了试验。然后我尝试了三个样本边缘。每次都有一个NoneType对象。但是,如果我使用空手道数据集,一切都正常。我做了三次完全相同的动作。列类型也是相同的。

From_dask_edgelist

代码语言:javascript
复制
cluster = LocalCUDACluster()
client = Client(cluster)
Comms.comms.initialize(p2p=True)

edges = dask.read_csv('.csv')
edges = edges.groupby(['Source','Target'])['retweet_from'].count()
edges = edges.to_frame(name="weight").reset_index()
edges = edges.map_partitions(cudf.DataFrame.from_pandas)
G = cugraph.Graph().from_dask_cudf_edgelist(edges,
                                            source = 'Source',
                                            destination = 'Target',
                                            edge_attr = 'weight')

G.__class__
NoneType

From_Pandas_edgelist空手道数据集

代码语言:javascript
复制
url = 'https://raw.githubusercontent.com/rapidsai/cugraph/branch-22.10/datasets/karate.csv'
df = pd.read_csv(url,delimiter=' ', header=None, names=["0", "1", "2"],
dtype={"0": "int32", "1": "int32","2": "float32"})

G = cugraph.Graph()
G.from_pandas_edgelist(df, source='0', destination='1',edge_attr='2', renumber=False)

G.__class__
cugraph.structure.graph_classes.Graph

From_Pandas_edgelist

代码语言:javascript
复制
edges = pd.read_csv('.csv')
edges = edges.groupby(['Source','Target'])['retweet_from'].count()
edges = edges.to_frame(name="weight").reset_index()
edges['Source'] = edges['Source'].astype("int32")
edges['Target'] = edges['Target'].astype("int32")
edges['weight'] = edges['weight'].astype("float32")
edges.dtypes
Source      int32
Target      int32
weight    float32
dtype: object

G = cugraph.Graph()
G = G.from_pandas_edgelist(edges,source = 'Source',destination = 'Target',edge_attr = 'weight', renumber=False)

G.__class__
NoneType

三边From_Pandas_edgelist

代码语言:javascript
复制
data = [[1, 3,3], [2, 1,1], [3, 1, 7]]
edges = pd.DataFrame(data, columns=['Source', 'Target', 'weight'])
edges['Source'] = edges['Source'].astype("int32")
edges['Target'] = edges['Target'].astype("int32")
edges['weight'] = edges['weight'].astype("float32")
G = cugraph.Graph()
G = G.from_pandas_edgelist(edges,source = 'Source',
                                            destination='Target',edge_attr = 'weight', renumber=False)
G.__class__
NoneType
EN

回答 2

Stack Overflow用户

发布于 2022-09-27 18:44:50

示例1: From_dask_edgelist

您需要添加“边缘‘权重’=边‘权重’..astype(”float32“)”,这样重量的d类型才是正确的。否则,from_dask_cudf_edgelist将抛出和错误,并返回None

示例3: From_Pandas_edgelist

示例4:三边From_Pandas_edgelist

由于'from_pandas_edgelist‘不返回任何内容(上面提到的PR修复),这将无法工作。如果你改变了

G = G.from_pandas_edgelist(edges,source = 'Source',destination = 'Target',edge_attr = 'weight', renumber=False)

公正

G.from_pandas_edgelist(edges,source = 'Source',destination = 'Target',edge_attr = 'weight', renumber=False)

然后它就能工作了

票数 1
EN

Stack Overflow用户

发布于 2022-09-23 17:05:01

并不是所有的cuGraph函数都可以流水线化。

调用from_dask_cudf_edgelist返回None

推断的方式是:

代码语言:javascript
复制
G = cugraph.Graph()
G.from_dask_cudf_edgelist(edges,
                           source = 'Source',
                           destination = 'Target',
                           edge_attr = 'weight')

然后G.就可以工作了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73826904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档