Python酷库之旅-第三方库Pandas(016)

目录

一、用法精讲

39、pandas.DataFrame.to_stata函数

39-1、语法

39-2、参数

39-3、功能

39-4、返回值

39-5、说明

39-6、用法

39-6-1、数据准备

39-6-2、代码示例

39-6-3、结果输出

40、pandas.read_stata函数

40-1、语法

40-2、参数

40-3、功能

40-4、返回值

40-5、说明

40-6、用法

40-6-1、数据准备

40-6-2、代码示例

40-6-3、结果输出 

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

39、pandas.DataFrame.to_stata函数
39-1、语法
# 39、pandas.DataFrame.to_stata函数
DataFrame.to_stata(path, *, convert_dates=None, write_index=True, byteorder=None, time_stamp=None, data_label=None, variable_labels=None, version=114, convert_strl=None, compression='infer', storage_options=None, value_labels=None)
Export DataFrame object to Stata dta format.Writes the DataFrame to a Stata dataset file. “dta” files contain a Stata dataset.Parameters:
pathstr, path object, or buffer
String, path object (implementing os.PathLike[str]), or file-like object implementing a binary write() function.convert_datesdict
Dictionary mapping columns containing datetime types to stata internal format to use when writing the dates. Options are ‘tc’, ‘td’, ‘tm’, ‘tw’, ‘th’, ‘tq’, ‘ty’. Column can be either an integer or a name. Datetime columns that do not have a conversion type specified will be converted to ‘tc’. Raises NotImplementedError if a datetime column has timezone information.write_indexbool
Write the index to Stata dataset.byteorderstr
Can be “>”, “<”, “little”, or “big”. default is sys.byteorder.time_stampdatetime
A datetime to use as file creation date. Default is the current time.data_labelstr, optional
A label for the data set. Must be 80 characters or smaller.variable_labelsdict
Dictionary containing columns as keys and variable labels as values. Each label must be 80 characters or smaller.version{114, 117, 118, 119, None}, default 114
Version to use in the output dta file. Set to None to let pandas decide between 118 or 119 formats depending on the number of columns in the frame. Version 114 can be read by Stata 10 and later. Version 117 can be read by Stata 13 or later. Version 118 is supported in Stata 14 and later. Version 119 is supported in Stata 15 and later. Version 114 limits string variables to 244 characters or fewer while versions 117 and later allow strings with lengths up to 2,000,000 characters. Versions 118 and 119 support Unicode characters, and version 119 supports more than 32,767 variables.Version 119 should usually only be used when the number of variables exceeds the capacity of dta format 118. Exporting smaller datasets in format 119 may have unintended consequences, and, as of November 2020, Stata SE cannot read version 119 files.convert_strllist, optional
List of column names to convert to string columns to Stata StrL format. Only available if version is 117. Storing strings in the StrL format can produce smaller dta files if strings have more than 8 characters and values are repeated.compressionstr or dict, default ‘infer’
For on-the-fly compression of the output data. If ‘infer’ and ‘path’ is path-like, then detect compression from the following extensions: ‘.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, ‘.zst’, ‘.tar’, ‘.tar.gz’, ‘.tar.xz’ or ‘.tar.bz2’ (otherwise no compression). Set to None for no compression. Can also be a dict with key 'method' set to one of {'zip', 'gzip', 'bz2', 'zstd', 'xz', 'tar'} and other key-value pairs are forwarded to zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdCompressor, lzma.LZMAFile or tarfile.TarFile, respectively. As an example, the following could be passed for faster compression and to create a reproducible gzip archive: compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}.New in version 1.5.0: Added support for .tar files.Changed in version 1.4.0: Zstandard support.storage_optionsdict, optional
Extra options that make sense for a particular storage connection, e.g. host, port, username, password, etc. For HTTP(S) URLs the key-value pairs are forwarded to urllib.request.Request as header options. For other URLs (e.g. starting with “s3://”, and “gcs://”) the key-value pairs are forwarded to fsspec.open. Please see fsspec and urllib for more details, and for more examples on storage options refer here.value_labelsdict of dicts
Dictionary containing columns as keys and dictionaries of column value to labels as values. Labels for a single variable must be 32,000 characters or smaller.New in version 1.4.0.Raises:
NotImplementedError
If datetimes contain timezone informationColumn dtype is not representable in StataValueError
Columns listed in convert_dates are neither datetime64[ns] or datetime.datetimeColumn listed in convert_dates is not in DataFrameCategorical label contains more than 32,000 characters
39-2、参数

39-2-1、path(必须)要写入的文件的路径(包括文件名)。

39-2-2、convert_dates(可选,默认值为None)字典,指定哪些列应该被转换为Stata的日期或日期时间格式,键是列名,值是日期时间格式(如'tc'表示Stata中的日期时间,'td'表示日期)。如果列名不是DataFrame中的列,则会被忽略。

39-2-3、write_index(可选,默认值为True)是否将DataFrame的索引作为一列写入Stata文件。如果为False,则不写入索引。

39-2-4、byteorder(可选,默认值为None)字节顺序,用于写入文件。通常为None,允许pandas自行决定(通常是< 表示小端序),但在某些特殊情况下,如果Stata文件需要在特定系统或版本上读取,可能需要手动设置。

39-2-5、time_stamp(可选,默认值为None)写入文件的时间戳,这不会改变文件内容,但会在Stata中作为数据集的创建或修改时间显示。

39-2-6、data_label(可选,默认值为None)数据集标签,一个简短的描述性文本字符串,用于在Stata中标识数据集。

39-2-7、variable_labels(可选,默认值为None)字典,指定DataFrame中各列的变量标签,键是列名,值是描述性文本字符串。

39-2-8、version(可选,默认值为114)Stata文件的版本,对应于Stata 14及更高版本,不同版本的Stata支持不同的数据类型和特性。

39-2-9、convert_strl(可选,默认值为None)Stata 14引入了strl类型,用于存储长度可变的字符串,这个参数允许你指定哪些列应该被转换为strl类型(如果version参数允许)。默认情况下pandas会根据列中的最大字符串长度自动决定是否使用strl类型。

39-2-10、compression(可选,默认值为'infer')压缩方法。'infer' 会根据 path 的文件扩展名自动选择压缩方法(如果文件扩展名为.zip或.xz),'zip'和'xz'分别指定ZIP和XZ压缩。如果为None,则不进行压缩。

39-2-11、storage_options(可选,默认值为None)用于任何存储连接的额外选项,例如存储账户凭证,这通常用于云存储系统(如S3、GCS、HDFS等),对于本地文件系统或标准的文件I/O操作,此参数通常不使用。

39-2-12、value_labels(可选,默认值为None)字典,用于为DataFrame中的分类变量指定值标签。键是列名,值是一个从类别值到标签的映射字典,这对于在Stata中创建易于理解的分类变量非常有用。

39-3、功能

        用于将pandas DataFrame保存到Stata的.dta格式文件中。

39-4、返回值

        本身并不返回任何值(即返回值为None),它的主要作用是将DataFrame的内容写入到指定的 .dta文件中,而不是在Python环境中返回一个对象或值。

39-5、说明

        Stata是一种广泛使用的统计软件,.dta文件是Stata的专有数据格式,用于存储数据集。通过这个函数,用户可以将pandas DataFrame中的数据保存为Stata可以直接读取和处理的文件格式。

39-6、用法
39-6-1、数据准备
39-6-2、代码示例
# 39、pandas.DataFrame.to_stata函数
import pandas as pd
# 创建一个示例DataFrame
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],'age': [28, 34, 29, 32],'date_of_birth': pd.to_datetime(['1992-01-01', '1988-02-15', '1991-07-23', '1989-10-10']),'city': ['New York', 'Paris', 'Berlin', 'London']
}
df = pd.DataFrame(data)
# 设置变量标签
variable_labels = {'name': 'Person Name','age': 'Age in Years','date_of_birth': 'Date of Birth','city': 'City of Residence'
}
# 设置数据标签
data_label = 'Demo Dataset for Pandas to Stata Conversion'
# 将 DataFrame 保存到 Stata 文件
# 这里我们使用了 Stata 114 格式(即 Stata 14 及以上版本),它支持字符串变量长度超过 244 字符
# 我们还指定了转换日期,写入索引,并添加了变量和数据标签
df.to_stata('example.dta',convert_dates={'date_of_birth': 'td'},  # 将 'date_of_birth' 转换为 Stata 日期格式write_index=False,  # 不写入索引到 Stata 文件variable_labels=variable_labels,  # 添加变量标签data_label=data_label,  # 添加数据标签version=114)  # 指定 Stata 文件的版本
print("DataFrame has been successfully saved to Stata file.")
39-6-3、结果输出
# DataFrame has been successfully saved to Stata file.
40、pandas.read_stata函数
40-1、语法
# 40、pandas.read_stata函数
pandas.read_stata(filepath_or_buffer, *, convert_dates=True, convert_categoricals=True, index_col=None, convert_missing=False, preserve_dtypes=True, columns=None, order_categoricals=True, chunksize=None, iterator=False, compression='infer', storage_options=None)
Read Stata file into DataFrame.Parameters:
filepath_or_bufferstr, path object or file-like object
Any valid string path is acceptable. The string could be a URL. Valid URL schemes include http, ftp, s3, and file. For file URLs, a host is expected. A local file could be: file://localhost/path/to/table.dta.If you want to pass in a path object, pandas accepts any os.PathLike.By file-like object, we refer to objects with a read() method, such as a file handle (e.g. via builtin open function) or StringIO.convert_datesbool, default True
Convert date variables to DataFrame time values.convert_categoricalsbool, default True
Read value labels and convert columns to Categorical/Factor variables.index_colstr, optional
Column to set as index.convert_missingbool, default False
Flag indicating whether to convert missing values to their Stata representations. If False, missing values are replaced with nan. If True, columns containing missing values are returned with object data types and missing values are represented by StataMissingValue objects.preserve_dtypesbool, default True
Preserve Stata datatypes. If False, numeric data are upcast to pandas default types for foreign data (float64 or int64).columnslist or None
Columns to retain. Columns will be returned in the given order. None returns all columns.order_categoricalsbool, default True
Flag indicating whether converted categorical data are ordered.chunksizeint, default None
Return StataReader object for iterations, returns chunks with given number of lines.iteratorbool, default False
Return StataReader object.compressionstr or dict, default ‘infer’
For on-the-fly decompression of on-disk data. If ‘infer’ and ‘filepath_or_buffer’ is path-like, then detect compression from the following extensions: ‘.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, ‘.zst’, ‘.tar’, ‘.tar.gz’, ‘.tar.xz’ or ‘.tar.bz2’ (otherwise no compression). If using ‘zip’ or ‘tar’, the ZIP file must contain only one data file to be read in. Set to None for no decompression. Can also be a dict with key 'method' set to one of {'zip', 'gzip', 'bz2', 'zstd', 'xz', 'tar'} and other key-value pairs are forwarded to zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdDecompressor, lzma.LZMAFile or tarfile.TarFile, respectively. As an example, the following could be passed for Zstandard decompression using a custom compression dictionary: compression={'method': 'zstd', 'dict_data': my_compression_dict}.New in version 1.5.0: Added support for .tar files.storage_optionsdict, optional
Extra options that make sense for a particular storage connection, e.g. host, port, username, password, etc. For HTTP(S) URLs the key-value pairs are forwarded to urllib.request.Request as header options. For other URLs (e.g. starting with “s3://”, and “gcs://”) the key-value pairs are forwarded to fsspec.open. Please see fsspec and urllib for more details, and for more examples on storage options refer here.Returns:
DataFrame or pandas.api.typing.StataReader.
40-2、参数

40-2-1、filepath_or_buffer(必须)字符串、路径对象或任何对象实现read()方法(如文件句柄或StringIO),这是要读取的.dta文件的路径或文件对象。

40-2-2、convert_dates(可选,默认值为True)布尔值,如果为True,则尝试将列转换为日期类型,如果数据中包含Stata日期时间,这非常有用。

40-2-3、convert_categoricals(可选,默认值为True)布尔值,如果为True,则尝试将列中的Stata值标签(value labels)转换为pandas的类别数据类型(Categorical dtype)。

40-2-4、index_col(可选,默认值为None)字符串或字符串列表,用作DataFrame行索引的列名或列名列表,如果传递了多个列名,将生成一个MultiIndex。

40-2-5、convert_missing(可选,默认值为False)布尔值,如果为True,则Stata 缺失值(如 .)将被转换为pandas的NaN值。然而,请注意,pandas通常已经能够正确处理这些缺失值,除非你有特定的理由需要更改此行为。

40-2-6、preserve_dtypes(可选,默认值为True)布尔值,如果为False,则在读取数据时不会尝试保留Stata 数据类型(如Stata 的字符串类型将被转换为pandas的object类型)。在某些情况下,这可以提高读取速度,但可能会丢失数据类型信息。

40-2-7、columns(可选,默认值为None)字符串列表,返回DataFrame中要包含的列名列表,如果为None,则读取所有列。

40-2-8、order_categoricals(可选,默认值为True)布尔值,如果为True,则对读取的类别数据类型(Categorical dtype)的类别进行排序,这基于Stata文件中定义的类别顺序。

40-2-9、chunksize(可选,默认值为None)整数,如果指定了非零值,则返回一个迭代器,该迭代器以chunksize行数为块提供DataFrame,这对于处理大型文件时节省内存非常有用。

40-2-10、iterator(可选,默认值为False)布尔值,如果为True,则返回TextFileReader对象,该对象可以迭代以分块读取文件,这与chunksize参数结合使用时特别有用。

40-2-11、compression(可选,默认值为'infer')字符串或None,用于指定文件压缩类型的字符串,如'gzip'、'bz2'、'zip'、'xz'或'infer'(如果filepath_or_buffer是字符串,则自动检测压缩),如果为None,则不进行解压缩。

40-2-12、storage_options(可选,默认值为None)字典,对于存储在如Google Cloud Storage、Amazon S3等云存储服务中的文件,此参数允许传递额外的选项来访问这些文件。

40-3、功能

        将Stata的.dta格式文件读取到pandas DataFrame中。

40-4、返回值

        返回值是一个pandas DataFrame对象,该对象包含了从.dta文件中读取的数据。

40-5、说明

        无

40-6、用法
40-6-1、数据准备
# 使用pandas.DataFrame.to_stata函数创建.dta文件
import pandas as pd
# 创建一个示例DataFrame
data = {'name': ['John', 'Anna', 'Peter', 'Linda'],'age': [28, 34, 29, 32],'date_of_birth': pd.to_datetime(['1992-01-01', '1988-02-15', '1991-07-23', '1989-10-10']),'city': ['New York', 'Paris', 'Berlin', 'London']
}
df = pd.DataFrame(data)
# 设置变量标签
variable_labels = {'name': 'Person Name','age': 'Age in Years','date_of_birth': 'Date of Birth','city': 'City of Residence'
}
# 设置数据标签
data_label = 'Demo Dataset for Pandas to Stata Conversion'
# 将 DataFrame 保存到 Stata 文件
# 这里我们使用了 Stata 114 格式(即 Stata 14 及以上版本),它支持字符串变量长度超过 244 字符
# 我们还指定了转换日期,写入索引,并添加了变量和数据标签
df.to_stata('example.dta',convert_dates={'date_of_birth': 'td'},  # 将 'date_of_birth' 转换为 Stata 日期格式write_index=False,  # 不写入索引到 Stata 文件variable_labels=variable_labels,  # 添加变量标签data_label=data_label,  # 添加数据标签version=114)  # 指定 Stata 文件的版本
print("DataFrame has been successfully saved to Stata file.")
40-6-2、代码示例
# 40、pandas.read_stata函数
import pandas as pd
# 指定.dta文件的路径
file_path = 'example.dta'
# 使用pandas的read_stata函数读取文件
df = pd.read_stata(file_path)
# 显示DataFrame的前几行以确认数据已正确读取
print(df.head())
40-6-3、结果输出 
# 40、pandas.read_stata函数
#     name  age date_of_birth      city
# 0   John   28    1992-01-01  New York
# 1   Anna   34    1988-02-15     Paris
# 2  Peter   29    1991-07-23    Berlin
# 3  Linda   32    1989-10-10    London

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

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

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

相关文章

nssm的下载和使用

nssm&#xff08;Non-Sucking Service Manager&#xff09;是一个用于在Windows系统上管理服务的工具。它允许你将.exe文件和.bat文件转换为Windows服务&#xff0c;并提供了一些功能来管理这些服务。 下载和安装 首先&#xff0c;你需要从nssm官方网站&#xff08;https://n…

【ARM】MDK安装ARM_compiler5无法打开安装程序

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 在客户安装了最新版本的MDK5.37及后续更新版本&#xff0c;但原工程使用ARM_Compiler_5.06进行编译和调试&#xff0c;需安装ARM_Compiler_5.06的编译器版本&#xff0c;但在解压缩的过程中后续无法打开ARM_Compiler…

解释 C 语言中的递归函数

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; &#x1f4d9;C 语言百万年薪修炼课程 通俗易懂&#xff0c;深入浅出&#xff0c;匠心打磨&#xff0c;死磕细节&#xff0c;6年迭代&#xff0c;看过的人都说好。 文章目…

AcWing 3381:手机键盘

【题目来源】https://www.acwing.com/problem/content/3384/【题目描述】 请你计算按照手机键盘&#xff08;9键输入法&#xff09;输入字母的方式&#xff0c;键入给定字符串&#xff08;由小写字母构成&#xff09;所花费的时间。 具体键入规则和花费时间如下描述&#xff1a…

确保智慧校园安全,充分利用操作日志功能

智慧校园基础平台系统的操作日志功能是确保整个平台运行透明、安全及可追溯的核心组件。它自动且详尽地记录下系统内的每一次关键操作细节&#xff0c;涵盖操作的具体时间、执行操作的用户账号、涉及的数据对象&#xff08;例如学生信息更新、课程调度变动等&#xff09;、操作…

十、函数栈帧的创建和销毁

前期学习的时候我们可能会有很多困惑&#xff0c;如&#xff1a; &#xff08;1&#xff09;局部变量的值是随机值&#xff1f; &#xff08;2&#xff09;为什么局部变量的值是随机值&#xff1f; &#xff08;3&#xff09;函数是怎么传参的&#xff1f;传参的顺序是怎样的…

Burp Suite Professional 2024.6 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.6 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接&#xff1a;https://sysin.org/blog/burp-suite-pro-mac/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页…

万字学习——DCU编程实战补充

参考资料 2.1 详解DCU架构 DCU 开发与使用文档 (hpccube.com) DCU架构是什么样的 计算单元阵列&#xff0c;如图CU0、CU1等缓存系统&#xff08;L1一级缓存&#xff0c;L2二级缓存&#xff09;全局内存(global memory)CPU和DCU数据通路&#xff08;DMA&#xff09; 我的理解…

通过图像高频信息保留图像细节,能保留多少细节-Comfyui

&#x1f9e8;前情提要 如果还不了解comfyui中图像高频信息保留细节的内容&#xff0c;可以参考上一篇文章&#xff1a; 图像中高频信息、低频信息与ComfyUI中图像细节保留的简单研究-CSDN博客 这次主要是简单测试下保留图像细节&#xff0c;能保留到什么程度&#xff1b; …

江波龙 128G msata量产

一小主机不断重启&#xff0c;用DG格式化 无法完成&#xff0c;应该是有坏块了 找一个usb转msata转换板 查了一下是2246en aa主控 颗粒应该是三星的 缓存是现代的 找到量产工具sm22XMPToolP0219B 打开量产工具 用镊子先短接一下jp1 插入usb口&#xff0c;再拿走镊子 scan …

每天五分钟计算机视觉:目标检测算法之R-CNN

本文重点 在计算机视觉领域,目标检测一直是一个核心问题,旨在识别图像中的物体并定位其位置。随着深度学习技术的发展,基于卷积神经网络(CNN)的目标检测算法取得了显著的进步。其中,R-CNN(Regions with CNN features)是一种开创性的目标检测框架,为后续的研究提供了重…

微积分-导数6(隐式导数)

隐式导数 前面我们学了如何求这些方程的导数&#xff1a; y x 3 1 or y x sin ⁡ x y \sqrt{x^31} \quad \text{or} \quad y x\sin x yx31 ​oryxsinx 但是如果是下面的方程&#xff0c;又该如何求导呢&#xff1f; x 3 y 3 6 x y x^3 y^3 6xy x3y36xy 这个方程的图…

【Linux】进程的基本概念(已经进程地址空间的初步了解)

目录 一.什么是进程 进程和程序的区别 Linux查看进程 进程的信息 fork函数 二.进程状态 操作系统上进程状态的概念 运行 阻塞 挂起 Linux中的进程状态 R状态 S状态和D状态 T状态 t状态 X状态 Z状态 三.进程的优先级 修改进程优先级 四.环境变量 常见的环境变量 PATH HOME PW…

科普文:jvm笔记

一、JVM概述# 1. JVM内部结构# 跨语言的平台&#xff0c;只要遵循编译出来的字节码的规范&#xff0c;都可以由JVM运行 虚拟机 系统虚拟机 VMvare 程序虚拟机 JVM JVM结构 HotSpot虚拟机 详细结构图 前端编译器是编译为字节码文件 执行引擎中的JIT Compiler编译器是把字节…

关于无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上 解决方法

文章目录 1. ERNEL32.dll 下载2. 解决方法 &#x1f44d; 个人网站:【 洛秋小站】 1. ERNEL32.dll 下载 Windows 7 在安装postman时报错缺少动态链接库,提示缺少.NET Framework,这是因为本地缺少相应的dll文件导致的&#xff0c;这时就需要下载ERNEL32.dll文件&#xff0c;在解…

前端/python脚本/转换-使用天地图下载的geojson(echarts4+如果直接使用会导致坐标和其他信息不全)

解决echarts4如果直接使用天地图下载的geojson会导致坐标和其他信息不全 解决方法是使用python脚本来补全其他信息&#xff1a;center&#xff0c;level&#xff0c;adcode等内容 前提是必须有一个之前使用的json文件&#xff08;需要全一点的数据供echarts使用&#xff09; …

Linux文件编程应用

目录 一、实现cp命令 二、修改程序的配置文件 三、写一个整数/结构体到文件 1.写一个整数到文件 2.写一个结构体到文件 四、写结构体数组到文件 我们学习了文件编程的常用指令以及了解文件编程的基本步骤后&#xff0c;试着来写一些程序实现某些功能。&#xff08;没有学…

记录一次微信小程序申诉定位权限过程

1 小程序接到通知&#xff0c;检测到违规&#xff0c;需要及时处理&#xff0c;给一周的缓冲时间&#xff0c;如果到期未处理&#xff0c;会封禁能力&#xff08;2023-11-17&#xff09; 2 到期后&#xff0c;仍未处理&#xff0c;封禁能力&#xff08;2023-11-24&#xff09; …

【04】微服务通信组件Feign

1、项目中接口的调用方式 1.1 HttpClient HttpClient 是 Apache Jakarta Common 下的子项目&#xff0c;用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 JDK 自带的 URLConnectio…