1.数据集文件
1.1 cora.cites
每行包含两个论文 id。第一列是被引用论文的id,第二列是引用的论文id。如果一行用“论文1 论文2”表示,意为“论文2 引用 论文1”,
1.2 cora.content
每行由“论文id+该论文属性的二进制+论文类别标签”组成。
与下图是同一行数据
2. python 处理数据
2.1 读取文件
import pandas as pd
con_data = pd.read_csv('cora.content', sep='\t', header=None)
cit_data = pd.read_csv('cora.cites', sep='\t', header=None)
print("content shape: ", con_data.shape)
print("cites shape: ", cit_data.shape)
shape的功能是读取矩阵的长度
2.2 获取属性
(1)将每一行取出后按制表符对每一行进行分割,去除掉第一行和最后一行后剩下的就是属性了。
path = r"E:\cora\cora.content"
#传入要读的文件路径
file = open(path, "r", encoding="utf-8", errors="ignore")
while True:
mystr = file.readline()#表示一次读取一行
if not mystr:
#读到mystr为空的时候跳出,结束循环。
break
print(mystr, end="")#打印每次读到的内容
mystr_l= mystr.split('\t')#用制表符分割后类型转为列表
print(mystr_l)
del mystr_l[0]#删除列表中第一个元素
mystr_l.pop()#pop()默认pop出最后一个元素
print(mystr_l)#得到属性
(2)Pandas中的iloc()函数
import pandas as pd
con_data = pd.read_csv('cora.content', sep='\t', header=None)
cit_data = pd.read_csv('cora.cites', sep='\t', header=None)
features = con_data.iloc[:, 1:-1]
print("features shape: ", features.shape)
print(features)