G1 = nx.from_pandas_edgelist(df_trade.loc[df_trade["转账方向"] == "贷"],
时间: 2023-06-20 21:08:14 浏览: 121
df_trade.loc[df_trade["转账金额"] > 1000], source="转账方", target="收款方", edge_attr=["转账金额", "交易时间"])
这行代码是将一个 pandas DataFrame 中的数据转化为一个 NetworkX 图,其中只保留了转账方向为贷和转账金额大于1000的交易,同时将转账方和收款方作为节点,转账金额和交易时间作为边的属性。
相关问题
如果不用创建新图,而是根据之前通过代码G = nx.from_pandas_edgelist(df, 'source', 'target','weight', create_using = nx.DiGraph())已导入的数据计算,应该怎么修改呢
如果你已经通过`nx.from_pandas_edgelist`方法将数据导入为图,那么可以直接使用该图进行计算,而无需创建新图。你可以按照以下方式修改代码:
```python
import networkx as nx
def calculate_yi(graph):
yi_values = {}
for node in graph.nodes:
yi = 0
for neighbor in graph.neighbors(node):
wij = graph[node][neighbor]['weight']
si = graph.nodes[node]['strength']
yi += (wij / si) ** 2
yi_values[node] = yi
return yi_values
# 假设你已经通过nx.from_pandas_edgelist方法导入了图数据为G
# 添加节点的强度属性
G.nodes[1]['strength'] = 1.2
G.nodes[2]['strength'] = 0.9
G.nodes[3]['strength'] = 1.5
G.nodes[4]['strength'] = 1.0
# 计算所有yi值
yi_values = calculate_yi(G)
print(yi_values)
```
在这个修改的代码中,我们假设你已经通过`nx.from_pandas_edgelist`方法将数据导入为了图`G`。然后,我们在图的节点上添加了强度属性,并调用`calculate_yi`函数计算所有的yi值。最后,我们打印输出了所有的yi值。请确保在运行代码之前,已经正确导入了图数据。
nx.from_pandas_edgelist这个函数讲一下
nx.from_pandas_edgelist 函数是 NetworkX 库提供的一个函数,用于从 Pandas 数据框中创建一个图。
该函数将 Pandas 数据框中的每一行当作一条边,从源节点指向目标节点。具体来说,它需要以下参数:
- df:Pandas 数据框,它包含了图的边信息。
- source:源节点列名。
- target:目标节点列名。
- edge_attr:边属性列名,可以是一个字符串或者是一个元组列表。如果为 None,则只创建一个无权图。
该函数的返回值是一个 NetworkX 图对象。
例如,对于下面这个 Pandas 数据框 df:
```
source target weight
0 A B 1
1 B C 2
2 C A 3
```
我们可以使用以下代码创建一个有权图:
```python
import pandas as pd
import networkx as nx
df = pd.read_csv('edge_list.csv')
G = nx.from_pandas_edgelist(df, source='source', target='target', edge_attr='weight')
```
这将创建一个有权图 G,其中包含三个节点 A、B 和 C,以及三条边 (A, B, 1)、(B, C, 2) 和 (C, A, 3)。
阅读全文