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)[源代码][源代码]#

将 DataFrame 对象导出为 Stata dta 格式。

将 DataFrame 写入 Stata 数据集文件。”dta” 文件包含一个 Stata 数据集。

参数:
路径字符串, 路径对象, 或缓冲区

字符串、路径对象(实现 os.PathLike[str]),或实现二进制 write() 函数的类文件对象。

convert_datesdict

将包含日期时间类型的列映射到Stata内部格式以在写入日期时使用。选项有 ‘tc’, ‘td’, ‘tm’, ‘tw’, ‘th’, ‘tq’, ‘ty’。列可以是整数或名称。未指定转换类型的日期时间列将转换为 ‘tc’。如果日期时间列包含时区信息,则引发 NotImplementedError。

write_indexbool

将索引写入 Stata 数据集。

byteorderstr

可以是 “>”, “<”, “little”, 或 “big”。默认是 sys.byteorder

time_stampdatetime

用作文件创建日期的日期时间。默认是当前时间。

data_labelstr, 可选

数据集的标签。必须小于或等于80个字符。

variable_labelsdict

包含列作为键和变量标签作为值的字典。每个标签必须为80个字符或更少。

版本{114, 117, 118, 119, None}, 默认 114

要在输出dta文件中使用的版本。设置为None以让pandas根据帧中的列数决定使用118或119格式。版本114可以被Stata 10及更高版本读取。版本117可以被Stata 13及更高版本读取。版本118在Stata 14及更高版本中受支持。版本119在Stata 15及更高版本中受支持。版本114将字符串变量限制为244个字符或更少,而版本117及更高版本允许字符串长度高达2,000,000个字符。版本118和119支持Unicode字符,版本119支持超过32,767个变量。

版本 119 通常仅在变量数量超过 dta 格式 118 的容量时使用。以格式 119 导出较小的数据集可能会产生意外后果,并且截至 2020 年 11 月,Stata SE 无法读取版本 119 文件。

convert_strl列表,可选

要转换为字符串列的列名列表,以适应Stata StrL格式。仅在版本为117时可用。如果字符串长度超过8个字符且值重复,将字符串存储在StrL格式中可以生成更小的dta文件。

压缩str 或 dict,默认 ‘infer’

用于实时压缩输出数据。如果 ‘infer’ 并且 ‘path’ 是类路径,则从以下扩展名检测压缩:’.gz’, ‘.bz2’, ‘.zip’, ‘.xz’, ‘.zst’, ‘.tar’, ‘.tar.gz’, ‘.tar.xz’ 或 ‘.tar.bz2’(否则不压缩)。设置为 None 表示不压缩。也可以是一个字典,键 'method' 设置为 {'zip', 'gzip', 'bz2', 'zstd', 'xz', 'tar'} 之一,其他键值对将转发给 zipfile.ZipFile, gzip.GzipFile, bz2.BZ2File, zstandard.ZstdCompressor, lzma.LZMAFiletarfile.TarFile,分别。例如,以下内容可以传递以实现更快的压缩并创建可复现的 gzip 存档:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

Added in version 1.5.0: 增加了对 .tar 文件的支持。

在 1.4.0 版本发生变更: Zstandard 支持。

storage_optionsdict, 可选

对于特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S) URL,键值对会作为头选项转发到 urllib.request.Request。对于其他URL(例如以“s3://”和“gcs://”开头),键值对会转发到 fsspec.open。请参阅 fsspecurllib 获取更多详情,关于存储选项的更多示例请参考 这里

value_labels字典的字典

包含列作为键和列值到标签的字典的字典。单个变量的标签必须为32,000个字符或更小。

Added in version 1.4.0.

引发:
NotImplementedError
  • 如果日期时间包含时区信息

  • 列数据类型在 Stata 中不可表示

ValueError
  • 在 convert_dates 中列出的列既不是 datetime64[ns] 也不是 datetime.datetime

  • 在 convert_dates 中列出的列不在 DataFrame 中

  • 分类标签包含超过 32,000 个字符

参见

read_stata

导入 Stata 数据文件。

io.stata.StataWriter

用于Stata数据文件的低级写入器。

io.stata.StataWriter117

用于版本117文件的低级写入器。

例子

>>> df = pd.DataFrame(
...     [["falcon", 350], ["parrot", 18]], columns=["animal", "parrot"]
... )
>>> df.to_stata("animals.dta")