pandas.Series.struct.field#
- Series.struct.field(name_or_index)[源代码]#
提取结构体的一个子字段作为系列。
- 参数:
- name_or_indexstr | bytes | int | 表达式 | 列表
要提取的子字段的名称或索引。
对于类似列表的输入,这将索引到一个嵌套的结构。
- 返回:
- pandas.Series
对应于所选子字段的数据。
参见
Series.struct.explode
返回所有子字段作为 DataFrame。
备注
生成的 Series 的名称将根据以下规则设置:
对于字符串、字节或整数 `name_or_index`(或这些的列表,用于嵌套选择),Series 名称设置为所选字段的名称。
对于一个
pyarrow.compute.Expression
,这被设置为表达式的字符串形式。对于类似列表的 name_or_index,名称将被设置为所选最终字段的名称。
示例
>>> import pyarrow as pa >>> s = pd.Series( ... [ ... {"version": 1, "project": "pandas"}, ... {"version": 2, "project": "pandas"}, ... {"version": 1, "project": "numpy"}, ... ], ... dtype=pd.ArrowDtype( ... pa.struct([("version", pa.int64()), ("project", pa.string())]) ... ), ... )
按字段名称提取。
>>> s.struct.field("project") 0 pandas 1 pandas 2 numpy Name: project, dtype: string[pyarrow]
按字段索引提取。
>>> s.struct.field(0) 0 1 1 2 2 1 Name: version, dtype: int64[pyarrow]
或者一个表达式
>>> import pyarrow.compute as pc >>> s.struct.field(pc.field("project")) 0 pandas 1 pandas 2 numpy Name: project, dtype: string[pyarrow]
对于嵌套的结构类型,你可以传递一个值列表来索引多个层级:
>>> version_type = pa.struct( ... [ ... ("major", pa.int64()), ... ("minor", pa.int64()), ... ] ... ) >>> s = pd.Series( ... [ ... {"version": {"major": 1, "minor": 5}, "project": "pandas"}, ... {"version": {"major": 2, "minor": 1}, "project": "pandas"}, ... {"version": {"major": 1, "minor": 26}, "project": "numpy"}, ... ], ... dtype=pd.ArrowDtype( ... pa.struct([("version", version_type), ("project", pa.string())]) ... ), ... ) >>> s.struct.field(["version", "minor"]) 0 5 1 1 2 26 Name: minor, dtype: int64[pyarrow] >>> s.struct.field([0, 0]) 0 1 1 2 2 1 Name: major, dtype: int64[pyarrow]