一.文件读写操作
1.csv
定义:逗号分隔值有时也叫做字符分隔值,其文件以纯文本形式存储表格数据,纯文件意味着该文件是一个字符序列,
不含必须像二进制数字那样被解读的数据。csv文件常常用于保存数据,Pandas提供了对该文件进行读写操作的方法。
开始,这里我们简单介绍一下 pd.read_csv( )
其部分参数如下
参数 数据类型 说明
header 整数,整数元素的列表 默认为infer。以整数表示该行作为列标签,如heads=0,意味着数据表的第一行作为列标签;如果不指定,默认为None
names 列表和类数组对象 默认为None,当headers=None时,以列表指定列的标签
index_col 整数,字符串 默认为None,以整数或者字符串指定某一列或多列作为索引
skiprows 整数,列表 默认为None,从文件第一行开始算起,并记为0
nrows 整数 默认为None,指定需要读取的行数
encoding 字符串 默认为None,指定编码格式,比如 ‘utf-8’
comment 字符串 默认为None,该字符后面为注释,不作为数据读入。例如comment=‘#',表示#符号之后的内容作为注释被忽略
上代码,更直观明了
(1)参数header
从图中,可以清楚看到,默认的列标签是第一行所有数据;
当没有声明 header 时,效果和 header=0是一样的;
当声明header=None时,第一行为整数0,1,2…
(2)参数names,skiprows
重命名列标签名称
使用skiprows参数,忽略第一行
(3)参数index_col, nrows
设置第一列为索引
读取前2行数据
当数据有缺失时,Pandas用NaN表示缺失数据
2.HDF5文件
HDF指一种为存储和处理大容量科学数据设计的文件格式及相应库文件
HDF5包括两种基本数据对象
~群组(group):类似文件夹,可以包含多个数据集或下级群组
~数据集(dataset):数据内容,可以是多维数组,也可以是更复杂的数据类型
HDF5文件在速度,内存占有,压缩程度等方面具有优势
先安装h5py
pip install h5py
HDF5包含两种基本数据对象,即create_group 和 create_dataset
创建 dataset
and 创建 group
注意:HDF5不是数据库,所以尽可能的将HDF5文件应用在 ‘一次写、多次读’ 的情况中
附加:
pd.ExcelFile( ) 读取 Microsoft Excel 文件
2.处理缺失数据
(1)针对Numpy中缺失数据
话不多说,上代码
当数组中有空值时,它的默认类型是 object ,此数组不支持任何运算(这里只列举了一个 sum)
Numpy为了拯救这个数组,提供了np.nan方法,这是一个浮点数,用来标记缺失数据
虽然可以进行运算了,但返回值全都是 nan ,这好像没什么用
所以又有了
忽略空值进行运算,这样问题就解决了
(2)Pandas处理缺失数据
Pandas会自动屏蔽空数据,进行运算;当然也可以根据索引将空值赋予某一个元素。
Pandas还提供了4个针对缺失数据的函数,分别是:
isnull( ) notnull( ) dropna( ) fillna( )
前两个返回的是布尔型数据进行筛选, 作用相反
dropna()的作用是删除空数据,并且不返回新对象,但原有的对象不受影响
对于DataFrame对象
默认按照行删除,即 axis=0;如果指定 axis=1 ,
则按照列删除
最后看 fillna()和两个特殊方法
作用: 用指定值代替空值。
特殊方法:用空值的前一个数或后一个数代替空值
对于DataFrame对象
需要指定轴