文件读
read_excel
: 从EXCEL的XLS或者XLSX文件中读取数据
read_hdf
: 读取用pandas存储的HDF5文件
read_html
: 从HTML文件中读取所有表格数据
read_json
: 从JSON字符串中读取数据
read_sas
: 读取SAS系统中定制存储格式的数据集
read_sql
: 将SQL查询的结果读取出来
read_stata
: 读取stata格式的数据集
read_csv
: 读取CSV格式的数据文件
例:
1.pd.read_table('文件地址+文件名',
sep='(','逗号 or ‘/s+’空格)',#指定分隔符号 用正则
skiprows=[0,2,3], #跳过指定的行
na_values=[3.0], #将3.0也当做缺失值对待 显示为 NaN
nrows=N #从文件开头往下只读N行
# f = {'message':['foo','NA'],'something':['two']}
# na_values=f #可以对不同的列,指定不同的缺失值标识
)
#---------------------------------------
注意指定列名用的参数名是names,不是columns:
2.pd.read_csv('d:/ex2.csv',header=None) # 使用默认列名 0,1,2,3,。。。
3.pd.read_csv('d:/ex2.csv', names=['a','b','c','d','message']) # 自定义列名
如果你想将上面的message列当作DataFrame的行索引,可以将它传递给参数index_col:
4.pd.read_csv('d:/ex2.csv', names=['a','b','c','d','message'],index_col='message')
#---------------------------------------
重点:分块读数据 chunksize=10 分为十行一组
import pandas as pd
#pd.options.display.max_rows = 10 #让pandas只显示0行数据 多余的在中间部位 省略号略过
#只有read_csv才有 chunksize=N函数
wf=pd.read_csv(r'C:\Users\Administrator\Desktop\sjs.csv',names=['a','b','c','d','e','f','g','h'], chunksize=10)
for i in wf:
print(i)
文件写
可以使用DataFrame的to_csv方法
务必原始数据是经过 DataFrame 处理的
df.to_csv('数据地址',sep='指定分隔符',na_rep='缺失值标记为',
index=False, header=False, #不显示行索引 列索引
columns=['更’,‘改’,‘列’,‘名'])
其他格式文件读/写
JSON和Pickle
1.read_json
函数可以自动将JSON数据集按照指定的顺序转换为Series或者DataFrame对象
#需要根据json的样式变换
2.to_json
函数,将pandas对象转换为json格式
3.Python标准库pickle,可以支持二进制格式的文件读写,且高效方便
read_pickle
#读二进制格式文件
to_pickle
#变为二进制格式文件
HDF5
HDF5适用于处理不适合在内存中存储地超大型数据,可以使你高效读写大型数据的一小块
要注意的是HDF5并不是数据库,它是一种适合一次写入多次读取的数据集
store = pd.HDFStore('D:\mydata.h5')
#生成HDF5文件
df.to_hdf('mydata.h5','obj3', format='table')
#写入H5文件
#文件名称‘mydata.h5’
#HDFStore支持两种工作模式,‘fixed’和‘table’。table的速度更慢,但支持一种类似数据库SQL语言的查询操作
pd.read_hdf('mydata.h5', 'obj3' ,where=['index < 5'])
#读取H5文件
#文件名称‘mydata.h5’
#‘obj3’ 读取列名 默认不写 全部读取
#where=[‘index < 5’] #类似sql的条件语句 规定读取范围
Excel
df = pd.read_excel('d:/ex1.xlsx', 'Sheet1')
#打开excel文件和指定的sheet名称
writer = pd.ExcelWriter('d:/ex2.xlsx')
#生成文件
df.to_excel(writer, 'Sheet1')
#df是DataFrame的数据集
writer.save()
#关闭文件
WEB
import requests
# 导入包
url = 'https://api.github.com/repos/pandas-dev/pandas/issues'
# 要访问的url
response = requests.get(url)
# 访问页面,需要等待一会
response
# 成功获取响应的数据
data = response.json()
# 解析为json格式
issues = pd.DataFrame(data['xxx'])
#将data直接传给DataFrame 注意取json中列表开头的key值
issues
#显示值
例: