當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python 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 數據格式。

將 DataFrame 寫入 Stata 數據集文件。 “dta” 文件包含一個 Stata 數據集。

參數

pathstr、路徑對象或緩衝區

字符串、路徑對象(實現 os.PathLike[str] )或 file-like 對象實現二進製 write() 函數。

以前這是“fname”

convert_datesdict

包含日期時間類型的字典映射列到寫入日期時使用的 stata 內部格式。選項是‘tc’, ‘td’, ‘tm’, ‘tw’, ‘th’, ‘tq’, ‘ty’。列可以是整數或名稱。未指定轉換類型的日期時間列將轉換為 ‘tc’。如果日期時間列具有時區信息,則引發 NotImplementedError。

write_indexbool

將索引寫入 Stata 數據集。

byteorderstr

可以是“>”、“sys.byteorder 。

time_stampdatetime

用作文件創建日期的日期時間。默認為當前時間。

data_labelstr,可選

數據集的標簽。不得超過 80 個字符。

variable_labelsdict

包含作為鍵的列和作為值的變量標簽的字典。每個標簽不得超過 80 個字符。

version{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 個變量。

版本 119 通常僅應在變量數量超過 dta 格式 118 的容量時使用。以 119 格式導出較小的數據集可能會產生意想不到的後果,並且截至 2020 年 11 月,Stata SE 無法讀取版本 119 文件。

convert_strl列表,可選

要轉換為 Stata StrL 格式的字符串列的列名列表。僅在版本為 117 時可用。如果字符串超過 8 個字符並且值重複,則以 StrL 格式存儲字符串可以生成更小的 dta 文件。

compressionstr 或 dict,默認 ‘infer’

用於輸出數據的即時壓縮。如果 ‘infer’ and ‘path’ path-like,則從以下擴展名檢測壓縮:“.gz”、“.bz2”、“.zip”、“.xz”或“.zst”(否則不壓縮)。設置為None 不壓縮。也可以是鍵 'method' 設置為 { 'zip' , 'gzip' , 'bz2' , 'zstd' } 之一的字典,其他鍵值對分別轉發到 zipfile.ZipFile , gzip.GzipFile , bz2.BZ2Filezstandard.ZstdDecompressor 。例如,可以傳遞以下內容以加快壓縮速度並創建可重現的 gzip 存檔:compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}

storage_options字典,可選

對特定存儲連接有意義的額外選項,例如主機、端口、用戶名、密碼等。對於 HTTP(S) URL,鍵值對作為標頭選項轉發到 urllib。對於其他 URL(例如以 “s3://” 和 “gcs://” 開頭),鍵值對被轉發到 fsspec 。有關詳細信息,請參閱fsspecurllib

value_labels字典的字典

包含作為鍵的列和作為值的列值的字典的字典。單個變量的標簽不得超過 32,000 個字符。

拋出

未實現錯誤
  • 如果日期時間包含時區信息

  • 列 dtype 在 Stata 中不可表示

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

  • convert_dates 中列出的列不在 DataFrame 中

  • 分類標簽包含超過 32,000 個字符

例子

>>> df = pd.DataFrame({'animal': ['falcon', 'parrot', 'falcon',
...                               'parrot'],
...                    'speed': [350, 18, 361, 15]})
>>> df.to_stata('animals.dta')

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.to_stata。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。