pandas.Series.struct.field
- Series.struct.field(name_or_index)[source]
-
Извлечение дочернего поля структуры в виде Series.
- Параметры:
-
- name_or_index:str | 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]
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.Series.struct.field.html