Python 为pathpy可视化处理元组数据

Python 为pathpy可视化处理元组数据,python,python-3.x,tuples,Python,Python 3.x,Tuples,我有.txt格式的数据,用空格和换行符分隔。这里有一些 1 2 1082040961 3 4 1082155839 5 2 1082414391 6 7 1082439619 8 7 1082439756 该数据表示时态图,G=(u,v,t),其中u,v,t表示从节点u到节点v之间有一条带时间戳的边t 我想使用Python的库可视化这些数据。 它们必须按如下所示进行编码以添加边 t.add_edge('1', '2', 1082040961) t.add_edge('3', '4', 1082

我有
.txt
格式的数据,用空格和换行符分隔。这里有一些

1 2 1082040961
3 4 1082155839
5 2 1082414391
6 7 1082439619
8 7 1082439756
该数据表示时态图,
G=(u,v,t)
,其中
u
v
t
表示从节点
u
到节点
v
之间有一条带时间戳的边
t

我想使用Python的库可视化这些数据。 它们必须按如下所示进行编码以添加边

t.add_edge('1', '2', 1082040961)
t.add_edge('3', '4', 1082155839)
t.add_edge('5', '2', 1082414391)
t.add_edge('6', '7', 1082439619)
t.add_edge('8', '7', 1082439756)

但是数据中有很多边缘。所以我需要一个聪明的方法来处理这件事。我应该如何编写此元组转换代码?

您可以通过以下方式迭代数据集:

with open(filename.txt) as f:
    for line in f:
        data = line.strip().split()
        t.add_edge(data[0], data[1], int(data[2])

请告诉我这是否有效,或者您是否有任何其他问题。

您也可以使用熊猫图书馆

import pandas as pd

path = r"C:\txt\file\path"

df = pd.read_fwf(path, header=None)
length = len(df.index)

for i in range(length):
    t.add_edge(df[df.columns[0]][i], df[df.columns[1]][i], df[df.columns[2]][i])

不确定这是否是您所需要的,但pathpy库中有一个
read\u file
函数。它允许从与您的格式类似的文件中构造一个新的
临时网络
对象。检查此项。

这也可能有帮助:

print [t.add_edge(str(data[0]),str(data[2]),int(data[4:-1])) for data in open("filename.txt") if data.strip().split(" ")]

为什么在
path
中用
r
前缀标记字符串?该前缀标记正则表达式的开始。为避免unicode错误。例如,我的路径是
“C:\Users\berka\Desktop\dene.txt”
,而
\b
会导致unicode错误。@accdias-the
r
并不意味着它是正则表达式,它意味着它是一个原始字符串,通常用于正则表达式,但在这种情况下,只需手动转义文件名路径中的“\”。@thesilkworm,噢!我懂了。谢谢你的解释。我一直认为它是正则表达式的标记,现在它变得更有意义了。“t.add_edge(data[0]、data[1]、int(data[2])这部分对第一列和第二列中的数据进行单引号编码吗?是的,
data[0]
data[1]
data[2]
都是字符串,因此前两个可以传递给函数。