如何使用Python为文件文件夹生成图形
我希望使用Python(Pandas和Networkx)为文件夹生成一个图形。到目前为止,我已经成功地将数据导入到数据框中,其中每一行对应一个文件夹链接,每一列对应一个文件夹: 示例:如果文件夹链接为:C:\User\some\u folder\foo\foo2\last\u folder如何使用Python为文件文件夹生成图形,python,pandas,dataframe,graph,networkx,Python,Pandas,Dataframe,Graph,Networkx,我希望使用Python(Pandas和Networkx)为文件夹生成一个图形。到目前为止,我已经成功地将数据导入到数据框中,其中每一行对应一个文件夹链接,每一列对应一个文件夹: 示例:如果文件夹链接为:C:\User\some\u folder\foo\foo2\last\u folder 0 1 2 3 4 5 0 C User some_folder foo foo2 last_folder
0 1 2 3 4 5
0 C User some_folder foo foo2 last_folder
它看起来就像上面的一样
是什么图形算法让我将最后一个元素连接到之前的元素,并将该元素连接到之前的元素?其中df
0 1 2 3 4 5
0 C User some_folder foo foo2 last_folder
使用,可生成源节点和目标节点的边列表:
df1 = df.stack()[0].to_frame(name='source')
df1 = df1.assign(dest = df1.shift(-1)).dropna()
print(df1)
输出:
source dest
0 C User
1 User some_folder
2 some_folder foo
3 foo foo2
4 foo2 last_folder
使用networkx将edgelist数据帧与来自edgelist的转换为图形
import networkx as nx
G = nx.from_pandas_edgelist(df1, 'source','dest')
fig, ax = plt.subplots(figsize=(15,8))
nx.draw_networkx(G, ax = ax)
输出:
但是文件系统结构不会生成图形,而是生成树,如果节点表示文件夹,它的值会是多少?文件夹的名称?那么,如果有两个同名文件夹呢?在进入堆栈溢出之前,您需要准确地考虑您希望最终数据结构的样子,并且当您问这样一个问题时,您需要如何描述该数据结构看起来像是欢迎堆栈溢出。谢谢你的帮助!实际文件包含大约13000行,所以我所做的是从df1=df.stack()[0].to_frame(name='source')中删除了“[0]”,并尝试以这种方式打印,但实际上没有看到任何打印。编辑:我是否删除“[0]”似乎并不重要。我猜plt是matplotlib.pyplot?将其限制为10行,并尝试进行绘图,以查看它是否工作正常。使用df.head().stack()
我在末尾添加了plt.show(),现在我可以看到图表了!再次感谢!