pandas.Series.struct.field # 系列.结构。字段( name_or_index ) [来源] # 将结构体的子字段提取为系列。 参数: 名称或索引str |字节|整数 |表达|列表要提取的子字段的名称或索引。 对于类似列表的输入,这将索引到嵌套结构中。 返回: 熊猫系列与所选子字段对应的数据。 也可以看看 Series.struct.explode将所有子字段作为 DataFrame 返回。 笔记 结果系列的名称将使用以下规则设置: 对于字符串、字节或整数name_or_index(或这些列表,用于嵌套选择),系列名称设置为所选字段的名称。 对于 a 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]