1.基本介绍和文件读写

2018-08-19  本文已影响0人  soyouwantme

Pandas介绍


Pandas是基于Numpy的专门用于数据分析的开源Python库。

Pandas没有使用Python已有的内置数据结构,而是使用率两种新型的数据结构:SeriesDataFrame

import pandas as pd
import numpy as np

Pandas和Numpy下载安装

下载地址:

进行Numpy安装,先进入whl安装包的存放目录。比如在C盘:

cd C:\

再使用命令行安装:

pip install numpy文件名.whl

文件读写


Pandas提供了一套I/O API的函数:


1.1

读取数据后自动生成DataFrame数据结构的数据。

读取方式如:

data = pd.read_csv('filename.csv')
print (type(data))#输出此数据的结构

read_csv()


我们在读取文件的时候,有许多必要的参数需要指定,以便我们得到的数据是可以直接用于后续数据分析过程的。

fixed_df = pd.read_csv('loandata_chi.csv', sep=';', encoding='gbk', 
                       parse_dates=[u'发贷日期'], index_col=u'发贷日期', )

在读取文件的时候,我们对四个参数进行了设置:

分块读取

当数据文件过大时,需要分块读取。逐块读取文件需要设置chunksize(行数),该方法返回一个可迭代的对象TextFileReader,通过对这个对象进行迭代,我们就可以每次读入部分数据,然后在每个部分数据集上进行计算。

chunker = pd.read_csv('loandata.csv', chunksize=4)
for piece in chunker:
    pass
    # 使用piece做后续处理

另外还有一个get_chunk()方法,它使你可以读取任意大小的块:

f = pd.read_csv('loandata.csv', iterator=True)
df.get_chunk(4)

read_csv常见参数

不只是read_csv(),其他如read_table()的读取函数也大致有以下参数:

参数 说明
sep或delimiter 用于对行中各字段进行拆分的字符序列或正则表达式
index_col 用作行索引的列编号或列名。可以是单个名称/数字或由多个名称/数字组成的列表(层次化索引)
nrows 读取前几行数据
skiprows 指定跳过其中几行
header 用作列名的行号。默认为0(第一行),如果没有header行就应该设置为None
names 用于结果的列名列表,结合header=None
usecols 指定读取其中的几列,usecols=['grade']表明只读grade列
dtype 指定每列数据的数据类型。例如 {'a': np.float64, 'b': np.int32}
na_values 一组用于替换NA/NaN的值
encoding 指定字符集编码类型,通常指定为'utf-8'
iterator 返回一个TextFileReader 对象,以便逐块处理文件
chunksize 文件块的大小,降低内存占用

to_csv()


在Pandas中,如果是一个DataFrame对象,可以使用to_csv方法将该数据结构存入一个文件。

import sys
df = pd.read_csv('loandata.csv', nrows=3, index_col='grade')
df.to_csv('loandata_3.csv')

to_csv方法也存在多个与read_csv相同的参数。

在输出时,索引也会一同输出,要想取消索引的输出,则:

df = pd.read_csv('loandata.csv', nrows=3)
df.to_csv(sys.stdout, index=False)

Excel文件的读写

通常情况下,读取Excel文件,需要设置sheetname。

pd.read_excel('loandata.xls', sheetname='first')
#读取单个sheet
df = pd.read_excel('loandata.xls', sheetname=['first', 'second'])
df['second']
#读取多个sheet到df中
上一篇 下一篇

猜你喜欢

热点阅读