72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle)

2024-02-28 07:52

本文主要是介绍72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle)

要将 pandas.DataFrame、pandas.Series 对象保存为 pickle 文件,请使用 to_pickle() 方法,并使用 pd.read_pickle() 函数读取保存的 pickle 文件。

在此对以下内容进行说明。

  • 什么是pickle
  • 将 pickle 与 pandas 一起使用的优点
    • 保存/加载为 CSV 文件时
    • 保存/加载为 pickle 文件时
  • 压缩处理

什么是pickle

pickle 是 Python 标准库中包含的一个模块,用于将 Python 对象转换为字节(序列化、pickling)以及从字节转换为 Python 对象(反序列化、unpickling)。

为了方便起见,这里将经过 pickle 并保存的文件称为 pickle 文件。

将 pickle 与 pandas 一起使用的优点

pandas 提供了以 CSV 文件和 JSON 文件等格式保存和读取 pandas.DataFrame 和 pandas.Series 对象的方法。

  • 03_Pandas读取csv/tsv文件(read_csv,read_table)
  • 34_Pandas对CSV文件内容的导出和添加(to_csv)
  • 50_Pandas读取 Excel 文件 (xlsx, xls)
  • 51_Pandas (to_excel) 编写 Excel 文件 (xlsx, xls)
  • 55_Pandas.DataFrame 转换为 JSON 字符串/文件并保存 (to_json)
  • 56_Pandas读取 JSON 字符串/文件 (read_json)

与 CSV 文件和 JSON 文件不同,pickle 文件无法用编辑器检查或在其他应用程序中重复使用,但优点是对象可以按原样读取和写入,而无需在保存或加载时进行任何特殊设置或处理。 以下面的 pandas.DataFrame 为例。它是使用日期和时间信息作为索引的时间序列数据,'list’列存储列表类型对象。

import pandas as pddf = pd.DataFrame({'list': [[0, 0], [0, 1], [1, 0], [1, 1]]},index=pd.date_range('2018-01-01', '2018-01-04', freq='D'))print(df)
#               list
# 2018-01-01  [0, 0]
# 2018-01-02  [0, 1]
# 2018-01-03  [1, 0]
# 2018-01-04  [1, 1]print(df.index)
# DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04'], dtype='datetime64[ns]', freq='D')print(type(df['list'][0]))
# <class 'list'>

保存/加载为 CSV 文件时

保存为 CSV 并重新加载时,首先需要指定 read_csv() 的 index_col 和 parse_dates 参数,以将索引指定为时间序列数据。

df.to_csv('data/pandas_obj.csv')df_from_csv = pd.read_csv('data/pandas_obj.csv', index_col=0, parse_dates=True)print(df_from_csv)
#               list
# 2018-01-01  [0, 0]
# 2018-01-02  [0, 1]
# 2018-01-03  [1, 0]
# 2018-01-04  [1, 1]print(df_from_csv.index)
# DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04'], dtype='datetime64[ns]', freq=None)

此外,由于“list”列被读取为字符串,因此有必要将其转换为列表类型对象,例如通过将内置函数 eval() 应用于每个元素。

  • 06_Pandas中map(),applymap(),apply()函数的使用方法
print(type(df_from_csv['list'][0]))
# <class 'str'>df_from_csv['list'] = df_from_csv['list'].apply(eval)print(df_from_csv)
#               list
# 2018-01-01  [0, 0]
# 2018-01-02  [0, 1]
# 2018-01-03  [1, 0]
# 2018-01-04  [1, 1]print(type(df_from_csv['list'][0]))
# <class 'list'>

保存/加载为 pickle 文件时

如果使用 to_pickle() 和 read_pickle() 将其视为 pickle 文件,则可以保存该对象而无需指定参数或转换它,并且可以按原样恢复它。

df.to_pickle('data/pandas_obj.pkl')df_from_pkl = pd.read_pickle('data/pandas_obj.pkl')print(df_from_pkl)
#               list
# 2018-01-01  [0, 0]
# 2018-01-02  [0, 1]
# 2018-01-03  [1, 0]
# 2018-01-04  [1, 1]print(df_from_pkl.index)
# DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04'], dtype='datetime64[ns]', freq='D')print(type(df_from_pkl['list'][0]))
# <class 'list'>

当想要保存对象的状态以暂时挂起工作时,pickle 文件也很有用,并且不必考虑任何特定的事情。 此外,它还具有比 CSV 等更快的处理速度的优点。

压缩处理

如果将扩展名指定为 .gz、.bz2、.xz 或 .zip,将自动执行压缩/解压缩过程。

df.to_pickle('data/pandas_obj.zip')df_from_pkl_zip = pd.read_pickle('data/pandas_obj.zip')print(df_from_pkl_zip)
#               list
# 2018-01-01  [0, 0]
# 2018-01-02  [0, 1]
# 2018-01-03  [1, 0]
# 2018-01-04  [1, 1]

还可以在压缩参数中显式指定格式(‘gzip’、‘bz2’、‘xz’、‘zip’)。

这篇关于72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754860

相关文章

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

Python中DataFrame转列表的最全指南

《Python中DataFrame转列表的最全指南》在Python数据分析中,Pandas的DataFrame是最常用的数据结构之一,本文将为你详解5种主流DataFrame转换为列表的方法,大家可以... 目录引言一、基础转换方法解析1. tolist()直接转换法2. values.tolist()矩阵

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

Pandas中多重索引技巧的实现

《Pandas中多重索引技巧的实现》Pandas中的多重索引功能强大,适用于处理多维数据,本文就来介绍一下多重索引技巧,具有一定的参考价值,感兴趣的可以了解一下... 目录1.多重索引概述2.多重索引的基本操作2.1 选择和切片多重索引2.2 交换层级与重设索引3.多重索引的高级操作3.1 多重索引的分组聚