CHARTET 6 数据载入、存储及文件格式

CHARTET 6 数据载入、存储及文件格式

一、pandas的介绍(introduct)

输入和输出通常有以下类型:读取文本文件及硬盘上其他更高效的格式文件、从数据库载入数据、与网络资源进行交互(比如Web API)

二、代码及方法(code and example)

6.1文本格式数据读写

从文件路径path找到文件所在地(内部文件和远程),如何打开文件就要先明确文件格式(.doc.exe.rds)

In [2]:
#import moudle
import numpy as np
import pandas as pd

pandas的解析函数,几乎可以读所有的文档,但是要明确文件的类型运用不同的的函数

函数 描述
read_csv 从文件、URL或文件型对象读取分隔好的数据,逗号是默认分隔符
read_table 从文件、URL或文件型对象读取分隔好的数据,制表符(’\t’)空格为默认分隔符
read_fwf 从特定宽度格式的文件中读取数据(无分隔符)
read_clipboard read_table的剪贴板版本,在将表格从wev页面转换成数据使用
read_excel 从Excel的XLS或XLSX文件中读取表格数据
read_hdf 读取用pandas存储HDF5文件
read_html 从HTML问文件中读取所有表格数据
read_json 从JSON字符串中读取数据
read_magpack 读取MeaasagePack二进制格式的pandas数据
read_pickle 读取以python pickles格式存储的任意对象
read_sas 读取存储在SAS系统中定制存储格式的SAS数据集
read_sql 将SQL查询结果读取为pandas的DataFrame
read_stata 读取Stata格式的数据集
read_feathermmm 读取Feather二进制文件

接下来将解释这些函数将文本数据转换为DataFrame的机制,这些函数的可选参数主要有以下几种类型

  • 索引:可以将一或多个列作为返回的DataFrame,从文件或用户获得列名,或者没有列名
    类型判断和数据转换:包括用户自定义的值转换和自定义的缺失值符号列表
  • 日期时间解析:包括组合功能,也包括将分散在多个列上的日期和时间信息组合合成结果中的单个列
    迭代:支持对大型文件的分块迭代
  • 未清洗数据问题:跳过行、页脚、注释以及其他次要数据,比如使用逗号分隔千位数字
In [11]:
list(open('examples/ex1.csv')) #第一行为文件头(默认为变量名),
Out[11]:
['a,b,c,d,message\n', '1,2,3,4,hello\n', '5,6,7,8,world\n', '9,10,11,12,foo']
In [45]:
df=pd.read_csv('examples/ex1.csv') #用read_csv将它读入一个DaraFrame
df
Out[45]:

在这里插入图片描述

In [46]:
df.index #索引
Out[46]:
RangeIndex(start=0, stop=3, step=1)

In [47]:
pd.read_table('examples/ex1.csv',sep=',') #也可以用read_table指定逗号分隔符
Out[47]:

在这里插入图片描述

In [2]:
list(open('examples/ex2.csv'))  #有的文件不包含表头行
Out[2]:
['1,2,3,4,hello\n', '5,6,7,8,world\n', '9,10,11,12,foo']
In [4]:
pd.read_csv('examples/ex2.csv',header=None) #允许pandas自动分配默认列名
Out[4]:

在这里插入图片描述

In [6]:
pd.read_csv('examples/ex2.csv',names=['a','b','c','d','message']) #可以自己指定列名
Out[6]:

在这里插入图片描述

In [10]:
names=['a','b','c','d','message']
pd.read_csv('examples/ex2.csv',names=names,index_col='message') #假设你想要message列成为返回DataFrame的索引,你可以指定位置4的列作为索引,或者将‘message’传给参数index_col
Out[10]:

在这里插入图片描述

In [13]:
list(open('examples/csv_mindex.csv'))
Out[13]:
['key1,key2,value1,value2\n',
 'one,a,1,2\n',
 'one,b,3,4\n',
 'one,c,5,6\n',
 'one,d,7,8\n',
 'two,a,9,10\n',
 'two,b,11,12\n',
 'two,c,13,14\n',
 'two,d,15,16\n']
 
In [14]:
parsed=pd.read_csv('examples/csv_mindex.csv',index_col=['key1','key2']) #想从多个列中形成一个分层索引,需要传入一个包含列序号和列名的列表
parsed
Out[14]:

在这里插入图片描述

In [15]:
list(open('examples/ex3.txt')) #某些情况下,一张表的分隔符并不是固定的,使用空白或其他方式来分隔字段
Out[15]:
['            A         B         C\n',
 'aaa -0.264438 -1.026059 -0.619500\n',
 'bbb  0.927272  0.302904 -0.032399\n',
 'ccc -0.264273 -0.386314 -0.217601\n',
 'ddd -0.871858 -0.348382  1.100491\n']
 
In [16]:
result=pd.read_table('examples/ex3.txt',sep='\+s') #当字段以多种不同数量的空格分开时,可以用read_table传入一个正则表达式\+s
result

C:\Users\JINYU\Anaconda3\lib\site-packages\pandas\io\parsers.py:765: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'.
  return read_csv(**locals())
Out[16]:

在这里插入图片描述

In [17]:
list(open('examples/ex4.csv'))
Out[17]:
['# hey!\n',
 'a,b,c,d,message\n',
 '# just wanted to make things more difficult for you\n',
 '# who reads CSV files with computers, anyway?\n',
 '1,2,3,4,hello\n',
 '5,6,7,8,world\n',
 '9,10,11,12,foo']
 
In [19]:
pd.read_csv('examples/ex4.csv',skiprows=[0,2,3]) #可以使用skiprows来跳过第一行、第三行和第四行
Out[19]:

在这里插入图片描述

In [21]:
list(open("examples/ex5.csv")) #pandas使用NA和NULL来自动识别缺失值且弥补
Out[21]:
['something,a,b,c,d,message\n',
 'one,1,2,3,4,NA\n',
 'two,5,6,,8,world\n',
 'three,9,10,11,12,foo']
 
In [22]:
result=pd
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值