一、概述
1、我们的数据大部分存在于文件当中,所以pandas会支持复杂的IO操作,pandas的API支持众多文件格式,如CSV、SQL、XLS、JSON、HDF5
二、CSV
1、读取csv文件
read_csv(filepath_or_buffer, sep=',', delimiter=None)
说明:
filepath_or_buffer:文件路径
usecols:如果一个数据集中有很多列,但是我们在读取的时候只想要使用到的列,我们就可以使用这个参数
# 读取文件,并且指定读取open,high,close列
data = pd.read_csv("./stock_day.csv", usecols=['open','high','close'])
data
2、如果CSV文件直接是数据,没有字段
默认将第一行作为字段,需要加上names参数
3、写入csv文件
to_csv(path_or_buf=None, sep=',', columns=None, header=True, index=True, index_label=None, mode='w', encoding=None)
说明:
path_or_buf:写入的路径
sep:分隔符
columns:列的标题
mode:w重写,a追加
index:是否写进,行索引值
header:是否写进,列索引值
# 保存open列数据
data[:10].to_csv('./test.csv', columns=['open'])
# 读取、查看结果
pd.read_csv('./test.csv')
会发现将索引写入到文件当中,变成单独的一列数据。如果需要删除,可以指定index参数,删除原来的文件,重新保存一次
# 保存open列数据
data[:10].to_csv('./test.csv', columns=['open'], index=False)
# 读取、查看结果
pd.read_csv('./test.csv')
三、HDF5
1、HDF5文件的读取和存储需要指定一个键,值为要存储的DataFrame
所以hdf5格式可以认为是存储3维数据的文件
key1 dataframe1二维数据
key2 dataframe2二维数据
2、读取hdf5文件
read_hdf5(path_or_buf, key=None, **kwargs)
说明:
path_or_buf:文件路径
key:读取的键
mode:打开文件的模式
3、写入hdf5文件
to_hdf5(path_or_buf, key, **kwargs)
四、JSON
1、读取json文件
将JSON格式转换成默认的DataFrame格式
read_json(path_or_buf=None, orient=None, typ='frame', lines=False)
说明:
path_or_buf:文件路径
orient:指定json字符串的格式(一般用records)
split:{index -> [index], columns -> [columns], data -> [data]}
records:[{column -> value}, ..., {column -> value}]
index:{index -> {column -> value}}
columns:{column -> {index -> value}}
values:just the values array
lines:按照每行读取json对象
typ:指定转换成的对象类型series或者dataframe
# 读取JSON
sa = pd.read_json('./Sarcasm_Headlines_Dataset.json', orient='records', lines=True)
sa
文件下载地址:https://www.kaggle.com/datasets/rmisra/news-headlines-dataset-for-sarcasm-detection
2、写入json文件
to_json(path_or_buf=None, orient=None, lines=False)
说明:
path_or_buf:文件地址
orient:存储的json形式,{'split','records','index','columns','values'}
lines:一个对象存储为一行,如果False所有对象都写在一个[]中
# 写入JSON
sa.to_json('test.json', orient='records', lines=True)
五、拓展
1、数据量很大优先选择用HDF5文件存储
(1)HDF5在存储的是支持压缩,使用的方式是blosc,这个是速度最快的,也是pandas默认支持的
(2)使用压缩可以提高磁盘利用率,节省空间
(3)HDF5还是跨平台的,可以轻松迁移到hadoop上面
六、小结
pandas基础数据处理
pandas介绍
什么是pandas:数据处理工具
为什么使用pandas
便捷的数据处理能力
集成了numpy,matplotlib
读取文件方便
三大核心数据结构
series:带索引的一维数组
属性
index
values
dataframe:带索引的二维数组
属性
shape
index
columns
values
T
常用方法
head()
tail()
索引设置
修改行列索引
重设索引
设置索引
panel:废弃
基本操作
索引操作
直接索引:必须先列后行
.loc:按名字进行索引
.iloc:按数字进行索引
.ix:组合索引(废弃)
赋值操作
排序
按内容排序:sort_values()
按索引排序:sort_index()
运算
算术运算
逻辑运算
逻辑运算符 & 布尔索引
函数
query()
isIn()
统计运算
获取综合的统计指标
具体的统计指标
累计统计指标
自定义运算-df.apply(func,axis=)
画图
df.plot()
sr.plot()
IO操作
csv
pd.read_csv()
usecols
names
df、sr.to_csv()
columns
index
header
mode
hdf5
有键
json
pd.read_json()
path
records
lines
df.to_json()
records
lines