pandas.DataFrame.to_stata #

数据框。to_stata路径 * 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 =) [来源] #

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

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

参数
路径str、路径对象或缓冲区

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

转换日期字典

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

write_index布尔值

将索引写入 Stata 数据集。

字节顺序字符串

可以是“>”、“<”、“小”或“大”。默认为sys.byteorder

time_stamp日期时间

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

data_label str,可选

数据集的标签。必须为 80 个字符或更小。

变量标签字典

包含列作为键和变量标签作为值的字典。每个标签不得超过 80 个字符。

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

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

通常仅当变量数量超过 dta 格式 118 的容量时才应使用版本 119。以格式 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'之一的字典,其他键值对分别转发到 , , , ,或 。例如,可以传递以下内容以加快压缩速度并创建可重现的 gzip 存档: .'zip''gzip''bz2''zstd''xz''tar'zipfile.ZipFilegzip.GzipFilebz2.BZ2Filezstandard.ZstdCompressorlzma.LZMAFiletarfile.TarFilecompression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

1.5.0 版本中的新增功能:添加了对.tar文件的支持。

版本 1.4.0 中更改: Zstandard 支持。

storage_options字典,可选

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

value_labels字典的字典

包含作为键的列的字典和作为值的标签的列值的字典。单个变量的标签不得超过 32,000 个字符。

1.4.0 版本中的新增功能。

加薪
未实现错误
  • 如果日期时间包含时区信息

  • 列 dtype 在 Stata 中无法表示

值错误
  • 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({'animal': ['falcon', 'parrot', 'falcon',
...                               'parrot'],
...                    'speed': [350, 18, 361, 15]})
>>> df.to_stata('animals.dta')