将值循环到函数中并将结果保存在数据框中
Loop a value into function and save the results in dataframe
我正在使用一个名为 "cdindex" 的 python 包,它在 network/graph 结构(节点和边)中获取数据,并在创建图形后生成一些整数属性节点。
按照包示例,我创建了如下节点(这里是顶点)和边数据:
>>> $ pip install cdindex
>>> import cdindex
>>> import datetime
>>> # dummy vertices for python module tests
>>> pyvertices= [{"name": "0Z", "time": datetime.datetime(1992, 1, 1)},
{"name": "1Z", "time": datetime.datetime(1992, 1, 1)},
{"name": "2Z", "time": datetime.datetime(1993, 1, 1)},
{"name": "3Z", "time": datetime.datetime(1993, 1, 1)},
{"name": "4Z", "time": datetime.datetime(1995, 1, 1)},
{"name": "5Z", "time": datetime.datetime(1997, 1, 1)},
{"name": "6Z", "time": datetime.datetime(1998, 1, 1)},
{"name": "7Z", "time": datetime.datetime(1999, 1, 1)},
{"name": "8Z", "time": datetime.datetime(1999, 1, 1)},
{"name": "9Z", "time": datetime.datetime(1998, 1, 1)},
{"name": "10Z", "time": datetime.datetime(1997, 1, 1)}]
>>> # dummy edges for python module tests
>>> pyedges = [{"source": "4Z", "target": "2Z"},
{"source": "4Z", "target": "0Z"},
{"source": "4Z", "target": "1Z"},
{"source": "4Z", "target": "3Z"},
{"source": "5Z", "target": "2Z"},
{"source": "6Z", "target": "2Z"},
{"source": "6Z", "target": "4Z"},
{"source": "7Z", "target": "4Z"},
{"source": "8Z", "target": "4Z"},
{"source": "9Z", "target": "4Z"},
{"source": "9Z", "target": "1Z"},
{"source": "9Z", "target": "3Z"},
{"source": "10Z", "target": "4Z"}]
接下来,我创建了图形并向其添加了节点(这里是顶点)和边:
>>> # create graph
>>> graph = cdindex.Graph()
>>> # add vertices
>>> for vertex in pyvertices:
graph.add_vertex(vertex["name"], cdindex.timestamp_from_datetime(vertex["time"]))
>>> # add edges
>>> for edge in pyedges:
graph.add_edge(edge["source"], edge["target"])
代码运行良好,我能够启动“graph.cdindex”函数来获取节点(在示例中为 4Z)的 cdindex 作为整数值在输出中(即 0.833)。
>>> graph.cdindex("4Z", int(datetime.timedelta(days=1825).total_seconds()))
[Out] 0.8333333333333333
我的问题
我想了解如何将多个值循环到“graph.cdindex”函数并将结果保存在数据框中。从技术上讲,我想循环许多其他字符串值(0Z、1Z、2Z、...)的列,而不是上述函数中的“4Z”字符串值,并保存它们的关联 cdindex 新列中的值。
可交付
所有节点 (Node_Name) 及其 cdindex 值 (cdindex_Value) 的数据帧,如下所示:
+-----------+---------------+
| Node_Name | cdindex_Value |
+-----------+---------------+
| 0Z | 0.247 |
+-----------+---------------+
| 1Z | 0.654 |
+-----------+---------------+
| 2Z | -0.547 |
+-----------+---------------+
| 3Z | 0.0 |
+-----------+---------------+
| 4Z | 0.8333 |
+-----------+---------------+
您可以使用列表理解来获取所有顶点和关联的 cindex 值:
tuples = [(v, graph.cdindex(v, int(datetime.timedelta(days=1825).total_seconds()))) for v in graph.vertices()] # check how to get the vertices name
df = DataFrame(tuples, columns=['node', 'cindexvalue'])
我正在使用一个名为 "cdindex" 的 python 包,它在 network/graph 结构(节点和边)中获取数据,并在创建图形后生成一些整数属性节点。
按照包示例,我创建了如下节点(这里是顶点)和边数据:
>>> $ pip install cdindex
>>> import cdindex
>>> import datetime
>>> # dummy vertices for python module tests
>>> pyvertices= [{"name": "0Z", "time": datetime.datetime(1992, 1, 1)},
{"name": "1Z", "time": datetime.datetime(1992, 1, 1)},
{"name": "2Z", "time": datetime.datetime(1993, 1, 1)},
{"name": "3Z", "time": datetime.datetime(1993, 1, 1)},
{"name": "4Z", "time": datetime.datetime(1995, 1, 1)},
{"name": "5Z", "time": datetime.datetime(1997, 1, 1)},
{"name": "6Z", "time": datetime.datetime(1998, 1, 1)},
{"name": "7Z", "time": datetime.datetime(1999, 1, 1)},
{"name": "8Z", "time": datetime.datetime(1999, 1, 1)},
{"name": "9Z", "time": datetime.datetime(1998, 1, 1)},
{"name": "10Z", "time": datetime.datetime(1997, 1, 1)}]
>>> # dummy edges for python module tests
>>> pyedges = [{"source": "4Z", "target": "2Z"},
{"source": "4Z", "target": "0Z"},
{"source": "4Z", "target": "1Z"},
{"source": "4Z", "target": "3Z"},
{"source": "5Z", "target": "2Z"},
{"source": "6Z", "target": "2Z"},
{"source": "6Z", "target": "4Z"},
{"source": "7Z", "target": "4Z"},
{"source": "8Z", "target": "4Z"},
{"source": "9Z", "target": "4Z"},
{"source": "9Z", "target": "1Z"},
{"source": "9Z", "target": "3Z"},
{"source": "10Z", "target": "4Z"}]
接下来,我创建了图形并向其添加了节点(这里是顶点)和边:
>>> # create graph
>>> graph = cdindex.Graph()
>>> # add vertices
>>> for vertex in pyvertices:
graph.add_vertex(vertex["name"], cdindex.timestamp_from_datetime(vertex["time"]))
>>> # add edges
>>> for edge in pyedges:
graph.add_edge(edge["source"], edge["target"])
代码运行良好,我能够启动“graph.cdindex”函数来获取节点(在示例中为 4Z)的 cdindex 作为整数值在输出中(即 0.833)。
>>> graph.cdindex("4Z", int(datetime.timedelta(days=1825).total_seconds()))
[Out] 0.8333333333333333
我的问题
我想了解如何将多个值循环到“graph.cdindex”函数并将结果保存在数据框中。从技术上讲,我想循环许多其他字符串值(0Z、1Z、2Z、...)的列,而不是上述函数中的“4Z”字符串值,并保存它们的关联 cdindex 新列中的值。
可交付
所有节点 (Node_Name) 及其 cdindex 值 (cdindex_Value) 的数据帧,如下所示:
+-----------+---------------+
| Node_Name | cdindex_Value |
+-----------+---------------+
| 0Z | 0.247 |
+-----------+---------------+
| 1Z | 0.654 |
+-----------+---------------+
| 2Z | -0.547 |
+-----------+---------------+
| 3Z | 0.0 |
+-----------+---------------+
| 4Z | 0.8333 |
+-----------+---------------+
您可以使用列表理解来获取所有顶点和关联的 cindex 值:
tuples = [(v, graph.cdindex(v, int(datetime.timedelta(days=1825).total_seconds()))) for v in graph.vertices()] # check how to get the vertices name
df = DataFrame(tuples, columns=['node', 'cindexvalue'])