数据分析基础之《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
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455275.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google Chrome Close AutoUpdate

DOMException: play() failed because the user didn‘t interact with the document first.-CSDN博客 html5 audio video-CSDN博客 Google Chrome Close AutoUpdate 关闭google浏览器自动更新 1:检查是否已安装google浏览器,并卸载: 2&…

黑马头条 Kafka

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 知…

【DC渗透系列】DC-2靶场

arp先扫 ┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:6b:ed:27, IPv4: 192.168.100.251 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.100.1 00:50:56:c0:00:08 VMware, In…

ElasticSearch查询语句用法

查询用法包括:match、match_phrase、multi_match、query_string、term 1.match 1.1 不同字段权重 如果需要为不同字段设置不同权重,可以考虑使用bool查询的should子句来组合多个match查询,并为每个match查询设置不同的权重 {"query&…

【征稿已开启】第五大数据、人工智能与软件工程国际研讨会(ICBASE 2024)

第五大数据、人工智能与软件工程国际研讨会(ICBASE 2024) 2024 5th International Conference on Big Data & Artificial Intelligence & Software Engineering 2024年09月20-22日 | 中国温州 第五届大数据、人工智能与软件工程国际研讨会&…

深信服技术认证“SCSA-S”划重点:安全事件管理处置

为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容,“考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信…

Unity笔记:相机移动

基础知识 鼠标输入 在Unity中,开发者在“Edit” > “Project Settings” > “Input Manager”中设置输入,如下图所示: 在设置了Mouse X后,Input.GetAxis("Mouse X")返回的是鼠标在X轴上的增量值。这意味着它会…

YOLOv5改进 | 细节涨点篇 | DySample一种超级轻量的动态上采样算子(效果完爆CARAFE)

一、 本文介绍 本文给大家带来的改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外…

Scrapy:Python中强大的网络爬虫框架

Scrapy:Python中强大的网络爬虫框架 在当今信息爆炸的时代,从互联网上获取数据已经成为许多应用程序的核心需求。Scrapy是一款基于Python的强大网络爬虫框架,它提供了一种灵活且高效的方式来提取、处理和存储互联网上的数据。本文将介绍Scrap…

点云transformer算法: FlatFormer 论文阅读笔记

代码:https://github.com/mit-han-lab/flatformer论文:https://arxiv.org/abs/2301.08739[FlatFormer.pdf] Flatformer是对点云检测中的 backbone3d部分的改进工作,主要在探究怎么高效的对点云应用transformer 具体的工作如下:一…

css浮动

CSS浮动 1. 浮动的简介 在最初,浮动是用来实现文字环绕图片效果的,现在浮动是主流的页面布局方式之一。 2. 元素浮动后的特点 脱离文档流。不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开(尽可能小&#x…

敏捷开发的INVEST原则

很久没来这个社区发点文章了,是因为工作的变动很大。 上一篇文章,我还在讨论专项测试领域,如何在金融投资领域进行测试,如何把控测试管理。 现在我要做的是质量体系建设的咨询,上升的高度和领域发生了变化。 我现在…