我有由10列组成的pandas数据框。
因此每个步骤都可能发生各种排列,我想从所有数据集中绘制一个有向图。
当前networkx在
中仅支持2列$context = array(
'http' => array(
'proxy' => 'proxy.domain:3128',
'request_fulluri' => true,
),
);
$cxContext = stream_context_create($context);
$sFile = file_get_contents("http://static.cricinfo.com/rss/livescores.xml", False, $cxContext);
$xml = simplexml_load_string ( $sFile."" );
有人可以告诉我如何针对两列以上的有向图进行计算
答案 0 :(得分:1)
networkx from_pandas_dataframe
使用add_edges_from
,您可以做类似的事情:
# libraries
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Build your graph
df = pd.DataFrame(np.random.randn(2,4),columns=list('ABCD')) #Create a 4 column data frame
columns = list(df.columns.values)# Get columns name
g = nx.empty_graph(0, nx.DiGraph()) #initialize an empty graph
for i in range(len(columns)-1):
g.add_edges_from(zip(df[columns[i]], df[columns[i+1]])) #Create edge between 2 values, between all consecutive coumns
# Plot it
nx.draw(g, with_labels=True)
plt.show()