用法:
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_buffer:str,路径对象或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_col:str,可选
要设置为索引的列。
- convert_missing:布尔值,默认为 False
指示是否将缺失值转换为其 Stata 表示的标志。如果为 False,则将缺失值替换为 nan。如果为 True,则使用对象数据类型返回包含缺失值的列,并且缺失值由 StataMissingValue 对象表示。
- preserve_dtypes:布尔值,默认为真
保留 Stata 数据类型。如果为 False,数字数据将向上转换为 Pandas 外部数据的默认类型(float64 或 int64)。
- columns:列表或无
要保留的列。列将按给定顺序返回。无返回所有列。
- order_categoricals:布尔值,默认为真
指示转换后的分类数据是否有序的标志。
- chunksize:整数,默认无
返回 StataReader 对象进行迭代,返回给定行数的块。
- iterator:布尔值,默认为 False
返回 StaReader 对象。
- compression:str 或 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
。有关详细信息,请参阅fsspec
和urllib
。
- 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
相关用法
- Python pandas.read_sql_table用法及代码示例
- Python pandas.read_sql用法及代码示例
- Python pandas.read_pickle用法及代码示例
- Python pandas.read_hdf用法及代码示例
- Python pandas.read_xml用法及代码示例
- Python pandas.read_table用法及代码示例
- Python pandas.read_excel用法及代码示例
- Python pandas.read_fwf用法及代码示例
- Python pandas.read_csv用法及代码示例
- Python pandas.read_html用法及代码示例
- Python pandas.read_json用法及代码示例
- Python pandas.arrays.IntervalArray.is_empty用法及代码示例
- Python pandas.DataFrame.ewm用法及代码示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代码示例
- Python pandas.DataFrame.dot用法及代码示例
- Python pandas.DataFrame.apply用法及代码示例
- Python pandas.DataFrame.combine_first用法及代码示例
- Python pandas.Index.value_counts用法及代码示例
- Python pandas.DatetimeTZDtype用法及代码示例
- Python pandas.DataFrame.cumsum用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.read_stata。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。