本文接上一篇日志:《Python学习日志(第3篇)——关联规则挖掘(2)》
6. inputfile = '../data/apriori.txt'
data = pd.read_csv( inputfile, header=None, dtype = object)
(1) 参考资料:
https://zhidao.baidu.com/question/652592922517817245.html ;
https://www.cnblogs.com/followyourheart1990/p/4270566.html
http://blog.csdn.net/databatman/article/details/49453953
https://www.cnblogs.com/datablog/p/6127000.html
http://blog.csdn.net/zutsoft/article/details/51483710
(2) 绝对路径和相对路径
首先看一个示例,当前路径的结构如下图所示。其中三个txt文本都为空文档,希望从test.py中实现对samelevel.txt、highlevel.txt、和lowerlevel.txt中写入一句话。
a. 在test.py中写入以下程序,实现对samelevel.txt的读写。
运行结果为:
说明:可以直接写当前文件夹下的文件的路径。
b. 在test.py中写入以下程序,实现对lowerlevel.txt的读写:
运行结果为:
说明:可以直接写当前文件夹下的其他文件夹,并用“/”分隔。
c. 在test.py中写入以下程序,实现对highlevel.txt的读写:
运行结果为:
说明:两个点的这个符号,代表当前文件夹的上一层文件。
d. 绝对路径:c中的例子,如果采用绝对路径的话,可以改为:
正、单斜杠的写法:f=open('d:/python case/test-20180119/highlevel.txt','w') 或者
反、双斜杠的写法:f=open('d:\\python case\\test-20180119\\highlevel.txt','w') 或者
r、反、单斜杠的写法:f=open(r'd:\python case\test-20180119\highlevel.txt','w')
e. 注意:如果只采用反、单斜杠,而不加“r”的话,会报错。从报错的信息中可以看出,是将该路径转换为了‘d:\\python case\test-20180119\\highlevel.txt’。
注意,报错信息中提示的路径里,test前面只有一条反斜杠,而不是双反斜杠。因为在Python语言中,类似于\t、\r这样的是特殊字符,程序遇到这样的符号,会对其进行转义,而不按照路径来处理。
(3) pandas.read_csv
① 函数作用:读取csv文件到DataFrame。而Dataframe是pandas中最常用的数据结构,类似于数据库中的表,不过DataFrame不仅仅限于2维,可以创建多维数据表。(更多关于DataFrame的问题,尚未研究,以后碰到再说。。。)
② 参数设置:该函数中可以设置的参数有很多,这里只对案例中提到的几个参数进行说明。
a. filepath_or_buffer:str, pathlib(尚未弄懂pathlib是什么)。路径的设置。
b. header:int or list of ints。指定行数用来作为列名。如果文件中没有列名,则默认为0,否则设置为None。
c. dtype:每列数据的数据类型。
(4) 本例分析:
① 输入事务集文件:在本例的程序中,主程序apriori_rules.py是在code文件夹下,而需要输入的数据apriori.txt是在data文件夹下。因此要访问apriori.txt时,首先要访问上一层的目录,即采用“..”的形式,再到data文件夹,最后到apriori.txt文件。
② 本例中,我们指定只运行从句首到data赋值的这一行(选中从第1行到第8行,点击Run-Run selection or current line)。可以看到当前的变量空间中,只有两个变量,Inputfile是str类型。data是Dataframe类型,且其大小是930行、7列。
在data上点击右键-edit,可以看到整个DataFrame。