读取文本类数据
pandas提供了一些将表格型数据读取为DataFrame对象的函数。read_csv 默认分隔符为逗号, read_table 默认分隔符为制表符 "\t"
类型推断是这些函数最重要的功能之一。
没有标题行的文件可以通过pandas分配也可以自定义列名。 pd.read_csv('xxx.csv',header=None) / pd.read_csv('xxx.csv', names = ['a','b','c','d','message'])
可以通过index_col 指定索引 pd.read_csv('xxx.csv', names = ['a','b','c','d','message'], index_col = 'message')
有些表格可能不是用固定的分隔符去分隔字段,因此可以编写一个正则表达式来作为read_table的分隔符。
可以用skiprows跳过文件指定行。
逐块读取文本文件
有时候文件太大,可以只读取文件的一小部分或者逐块对文件进行迭代。
只读几行的话,可以通过nrows进行指定。
若需逐块读取文件,需要设置chunksize(行数):
chunker = pd.read_csv('xxxx.csv',chunksize = 1000)
tot = Series([])
for piece in chunker:
tot = tot.add(piece['key'].value_counts(),fill_value=0)
tot = tot.order(ascending = False)
此处迭代处理csv,将值计数聚合到'key'列中。
输出
通过DataFrame的to_csv方法,我们可以将数据写到一个以逗号分隔的文件中。缺失值在输出结果中会被表示为空字符串,也可以表示为其他标记值。
web信息的搜集读取,xml和html
Python有许多可以读写HTML和xml格式数据的库,lxml就是其中之一,能够高效可靠的解析大文件。它有很多编程接口,可以先用lxml.html处理HTML,然后再用lxml.objectify做一些xml的处理。
许多网站都将数据放在HTML的表格中以便浏览器查看。