数据加载、存储与文件格式
pandas提供了一些用于将表格型数据读取为DataFrame对象的函数。其中read_csv和read_talbe用得最多
pandas中的解析函数:
函数 说明
read_csv 从文件、URL、文件型对象中加载带分隔符的数据,默认分隔符为逗号
read_table 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符("/t")
read_fwf 读取定宽列格式数据(也就是说,没有分隔符)
read_clipboard 读取剪贴板中的数据,可以看做read_table的剪贴板版。在将网页转换为表格时很有用
下面介绍一下这些函数在将文本数据转换为DataFrame时所用到的一些技术。这些函数的选项可以划分为以下几个大类:
(1)索引:将一个或多个列当做返回的DataFrame处理,以及是否从文件、用户获取列名
(2)类型推断和数据转换:包括用户定义值的转换、缺失值标记列表等。(类型推断是这些函数中最重要的功能之一)
(3)日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合成结果中的单个列。
(4)迭代:支持对大文件进行逐块迭代。
(5)不规整数据问题:跳过一些行、页脚、注释或其他一些不重要的东西(比如成千上万个逗号隔开的数值数据)
1. 读写文本格式的数据:
(1)由于该文件以逗号分隔,所以我们可以使用read_csv将其读入一个DataFrame:
import pandas as pdimport numpy as np
#'ex1.csv'的内容如下:# a,b,c,d,message# 1,2,3,4,hello# 5,6,7,8,world# 9,10,11,12,foodf=pd.read_csv('ex1.csv')print df#输出结果如下:# a b c d message# 0 1 2 3 4 hello# 1 5 6 7 8 world# 2 9 10 11 12 foo
(2)我们也可以用read_table,只不过需要指定分隔符而己:
df=pd.read_table('ex1.csv',sep=',')print df#输出结果如下:# a b c d message# 0 1 2 3 4 hello# 1 5 6 7 8 world# 2 9 10 11 12 foo
(3)读入文件可以让pandas为其分配默认的列名,也可以自己定义列名:
print pd.read_csv('ex1.csv',header=None)#输出结果如下:# 0 1 2 3 4# 0 a b c d message# 1 1 2 3 4 hello# 2 5 6 7 8 world# 3 9 10 11 12 fooprint pd.read_csv('ex1.csv',names=['a','b','c','d','message'])#输出结果如下:# a b c d message# 0 a b c d message# 1 1 2 3 4 hello# 2 5 6 7 8 world# 3 9 10 11 12 foo
(4)假如希望将message列做成DataFrame的索引,也可以明确表示要将该列放到索引4的位置上,也可以通过index_col参数指定"message"
names=['a','b','c','d','message']print pd.read_csv('ex1.csv',names=names)#输出结果如下:# a b c d message# 0 a b c d message# 1 1 2 3 4 hello# 2 5 6 7 8 world# 3 9 10 11 12 fooprint pd.read_csv('ex1.csv',names=names,index_col='message')#输出结果如下:# a b c d# message# message a b c d# hello 1 2 3 4# world 5 6 7 8# foo 9 10 11 12
新闻热点
疑难解答