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.LZMAFile
或tarfile.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
。请参阅fsspec
和urllib
获取更多详情,关于存储选项的更多示例请参考 这里。- 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")