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


Python 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)

將 Stata 文件讀入 DataFrame。

參數

filepath_or_bufferstr,路徑對象或file-like對象

任何有效的字符串路徑都是可接受的。該字符串可以是一個 URL。有效的 URL 方案包括 http、ftp、s3 和文件。對於文件 URL,需要一個主機。本地文件可以是:file://localhost/path/to/table.dta

如果你想傳入一個路徑對象,pandas 接受任何 os.PathLike

通過file-like 對象,我們指的是具有read() 方法的對象,例如文件句柄(例如通過內置open 函數)或StringIO

convert_dates布爾值,默認為真

將日期變量轉換為 DataFrame 時間值。

convert_categoricals布爾值,默認為真

讀取值標簽並將列轉換為分類/因子變量。

index_colstr,可選

要設置為索引的列。

convert_missing布爾值,默認為 False

指示是否將缺失值轉換為其 Stata 表示的標誌。如果為 False,則將缺失值替換為 nan。如果為 True,則使用對象數據類型返回包含缺失值的列,並且缺失值由 StataMissingValue 對象表示。

preserve_dtypes布爾值,默認為真

保留 Stata 數據類型。如果為 False,數字數據將向上轉換為 Pandas 外部數據的默認類型(float64 或 int64)。

columns列表或無

要保留的列。列將按給定順序返回。無返回所有列。

order_categoricals布爾值,默認為真

指示轉換後的分類數據是否有序的標誌。

chunksize整數,默認無

返回 StataReader 對象進行迭代,返回給定行數的塊。

iterator布爾值,默認為 False

返回 StaReader 對象。

compressionstr 或 dict,默認 ‘infer’

用於on-disk 數據的即時解壓縮。如果 ‘infer’ 和 '%s' 是 path-like,則從以下擴展名中檢測壓縮:'.gz'、'.bz2'、'.zip'、'.xz' 或 '.zst'(否則沒有壓縮)。如果使用‘zip’,ZIP 文件必須隻包含一個要讀入的數據文件。設置為None無需減壓。也可以是帶鍵的字典'method'設置為 { 之一'zip','gzip','bz2','zstd'} 和其他鍵值對被轉發到zipfile.ZipFile,gzip.GzipFile,bz2.BZ2File, 或者zstandard.ZstdDecompressor, 分別。例如,可以使用自定義壓縮字典為 Zstandard 解壓縮傳遞以下內容:compression={'method':'zstd', 'dict_data':my_compression_dict}.

storage_options字典,可選

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

返回

DataFrame 或 StaReader

注意

通過迭代器讀取的分類變量可能具有不同的類別和 dtype。當存儲在 DTA 文件中的變量與一組不完整的值標簽相關聯時,會發生這種情況,而這些值標簽僅標記值的嚴格子集。

例子

為此示例創建一個虛擬狀態 >>> df = pd.DataFrame({‘animal’:[‘falcon’, ‘parrot’, ‘falcon’, ... ‘parrot’], ... ‘speed’:[350, 18, 361, 15]}) # doctest :+SKIP >>> df.to_stata('animals.dta') # doctest:+SKIP

讀取 Stata 數據文件:

>>> df = pd.read_stata('animals.dta')

以 10,000 行塊讀取 Stata dta 文件: >>> values = np.random.randint(0, 10, size=(20_000, 1), dtype=”uint8”) # doctest:+SKIP >>> df = pd .DataFrame(values, columns=[“i”]) # doctest:+SKIP >>> df.to_stata('filename.dta') # doctest:+SKIP

>>> itr = pd.read_stata('filename.dta', chunksize=10000)  
>>> for chunk in itr:
...    # Operate on a single chunk, e.g., chunk.mean()
...    pass

相關用法


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