首页 > 编程 > Python > 正文

python用pandas数据加载、存储与文件格式的实例

2020-02-15 23:58:56
字体:
来源:转载
供稿:网友

数据加载、存储与文件格式

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            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表