pandas可以将读取到的表格型数据(文件不一定要是表格)转成DataFrame类型的数据结构,然后我们可以通过操作DataFrame进行数据分析,数据预处理以及行和列的操作等。下面介绍一些常用读取文件的方法
1、read_csv函数
功能:从文件、URL、文件新对象中加载带有分隔符的数据,默认分隔符是逗号。
data.txt
a,b,c,d,name 1,2,3,4,python 5,6,7,8,java 9,10,11,12,c++
data = pd.read_csv("data.txt") print(data) ''' a b c d name 0 1 2 3 4 python 1 5 6 7 8 java 2 9 10 11 12 c++ '''
2、read_table函数
功能:从文件、URL、文件型对象中加载带分隔符的数据,默认分隔符为制表符(“\t”)。
data.txt的内容还是不变,我们可以通过指定read_table的sep参数来修改默认的分隔符。
data = pd.read_table("data.txt",sep=",") print(data) ''' a b c d name 0 1 2 3 4 python 1 5 6 7 8 java 2 9 10 11 12 c++ '''
本文来源gao@daima#com搞(%代@#码网@3、读取没有标题的文件
data.txt
1,2,3,4,python 5,6,7,8,java 9,10,11,12,c++
data = pd.read_csv("data.txt") #默认将第一行作为标题 print(data) ''' 1 2 3 4 python 0 5 6 7 8 java 1 9 10 11 12 c++ ''' #设置header参数,读取文件的时候没有标题 data1 = pd.read_csv("data.txt",header=None) print(data1) ''' 0 1 2 3 4 0 1 2 3 4 python 1 5 6 7 8 java 2 9 10 11 12 c++ ''' #设置names参数,来设置文件的标题 data2 = pd.read_csv("data.txt",names=["a","b","c","d","name"]) print(data2) ''' a b c d name 0 1 2 3 4 python 1 5 6 7 8 java 2 9 10 11 12 c++ '''
4、读取文件设置列索引
#设置names参数,来设置文件的标题,设置index_col参数来设置列索引 data2 = pd.read_csv("data.txt",names=["a","b","c","d","name"],index_col="name") print(data2) ''' a b c d name python 1 2 3 4 java 5 6 7 8 c++ 9 10 11 12 '''
如果不设置列索引,默认会使用从0开始的整数索引。当对表格的某一行或列进行操作之后,在保存成文件的时候你会发现总是会多一列从0开始的列,如果设置index_col参数来设置列索引,就不会出现这种问题了。
a、指定多个列为列索引产生一个层次化索引
一个值由两个列索引(key1和kye2)和一个行索引(value1或value2)来决定,可以将其理解为一个三维数据,三个点来构成一个坐标位置。
data.txt
key1,key2,value1,value2 a,a,1,2 a,b,3,4 b,c,5,6 b,d,7,8 c,e,9,10 c,f,11,12
data = pd.read_csv("data.txt",index_col=["key1","key2"]) print(data) ''' value1 value2 key1 key2 a a 1 2 b 3 4 b c 5 6 d 7 8 c e 9 10 f 11 12 '''
5、对于不规则分隔符,使用正则表达式读取文件
文件中的分隔符采用的是空格,那么我们只需要设置sep=” “来读取文件就可以了。当分隔符并不是单个的空格,也许有的是一个空格有的是多个空格时,如果这个时候还是采用sep=” “来读取文件,也许你就会得到一个很奇怪的数据,因为它会将空格也做为数据。