Pandas之文件的读取和写出

读与写

 


      pandas是基于NumPy的一种数据分析工具,在数据分析的任务中,我们首先需要对数据进行清洗和编辑等工作,pandas库大大简化了我们的工作量。

•pandas进行数据读取

1 #绝对路径查询
2 import os 
1 print(os.path.abspath("."))
/Users/yaozhilin
1 #导入pandas和numpy库
2 import pandas as pd
3 import numpy as np
1 from pandas import Series,DataFrame 

读取常用的数据方法

~pd.read_csv   读取csv文件

~pd.read_table   读取txt文件

~pd.read_excel   读取xls文件

其实这三种读取方式都一致,我们以pd.read_excel为例

pd.read_excel(filepath,encoding,sep,header,names,usecols,index_col,skiprows,nrows……)
filepath:文件存储路径,可以用r""进行非转义限定,路径最好是纯英文(文件名也是),不然会经常碰到编码不对的问题,最方便是直接将文件存储在pandas默认的路径下,则直接输入文件名即可
encoding:pandas默认编码是utf-8,如果同样读取默认uft-8的txt或者json格式,则可以忽略这个参数,如果是csv,且数据中有中文时,则要指定encoding=‘gbk’
sep:指定分割符形式,CSV默认逗号分割,可以忽略这个参数,如果是其它分割方式,则要填写
header: 指定第一行是否是列名,通常有三种用法,忽略或header=0(表示数据第一行为列名),header=None(表明数据没有列名),常与names搭配使用
names: 指定列名,通常用一个字符串列表表示,当header=0时,用names可以替换掉第数据中的第一行作为列名,如果header=None,用names可以增加一行作为列名,如果没有header参数时,用names会增加一行作为列名,原数据的第一行仍然保留
usecols:一个字符串列表,可以指定读取的列名
index_col: 一个字符串列表,指定哪几列作为索引
skiprows: 跳过多少行再读取数据,通常是数据不太干净,需要去除掉表头才会用到
nrows: 仅读取多少行,后面的处理也都仅限于读取的这些行

以上参数并不都会用到,仅供参考,下面我们简单的读取一个文件:

1 test=pd.read_excel("/Users/yaozhilin/Downloads/数据.xls",sep="t")
2 test.head(5)#显示前五行

columns重命名rename 

1 test.rename(columns={"联系人姓名":"姓名","联系人头衔":"职位"},inplace=True)
2 test.head(5) 

•pandas进行数据写出

写入常用的数据方法

~data.to_csv   写出csv文件

~data.to_table   写出txt文件

~data.to_excel   写出xls文件

data.to_excel (path_or_buf=None, sep=’, ’, columns=None, header=True, index=True, mode=‘w’, encoding=None)
path_or_buf :文件路径
sep :分隔符,默认用","隔开
columns :选择需要的列索引
header :boolean or list of string, default True,是否写进列索引值
index:是否写进行索引
mode:‘w’:重写, ‘a’ 追加


写出一个文件

1 test.to_excel("/Users/yaozhilin/Downloads/数据写出.xls", encoding='gbk')

我们尝试的读取一下,看看是否写出成功。

1 pd.read_excel("/Users/yaozhilin/Downloads/数据写出.xls", encoding='gbk',nrows=5)#只读5行

我们在读写文件时常常需要注意encoding="gbk"(中文防止乱码)和分隔符sep=" "。

附:常用的读写参考表

原文地址:https://www.cnblogs.com/ye20190812/p/13392021.html