数据分析基础之《pandas(5)—文件读取与存储》

一、概述

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
 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值