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-ther
并不意味着它是正则表达式,它意味着它是一个原始字符串,通常用于正则表达式,但在这种情况下,只需手动转义文件名路径中的“\”。@thesilkworm,噢!我懂了。谢谢你的解释。我一直认为它是正则表达式的标记,现在它变得更有意义了。“t.add_edge(data[0]、data[1]、int(data[2])这部分对第一列和第二列中的数据进行单引号编码吗?是的,data[0]
、data[1]
和data[2]
都是字符串,因此前两个可以传递给函数。