Class StructFrameAccessor (2.17.0)
Stay organized with collections
Save and categorize content based on your preferences.
StructFrameAccessor(data: bigframes.dataframe.DataFrame)
Accessor object for structured data properties of the Series values.
Methods
explode
explode(column, *, separator: str = ".") -> bigframes.dataframe.DataFrame
Extract all child fields of struct column(s) and add to the DataFrame.
Examples:
>>> import bigframes.pandas as bpd
>>> import pyarrow as pa
>>> bpd.options.display.progress_bar = None
>>> countries = bpd.Series(["cn", "es", "us"])
>>> files = bpd.Series(
... [
... {"version": 1, "project": "pandas"},
... {"version": 2, "project": "pandas"},
... {"version": 1, "project": "numpy"},
... ],
... dtype=bpd.ArrowDtype(pa.struct(
... [("version", pa.int64()), ("project", pa.string())]
... ))
... )
>>> downloads = bpd.Series([100, 200, 300])
>>> df = bpd.DataFrame({"country": countries, "file": files, "download_count": downloads})
>>> df.struct.explode("file")
country file.version file.project download_count
0 cn 1 pandas 100
1 es 2 pandas 200
2 us 1 numpy 300
<BLANKLINE>
[3 rows x 4 columns]
Returns |
Type |
Description |
DataFrame |
Original DataFrame with exploded struct column(s). |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Class StructFrameAccessor (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/python/docs/reference/bigframes/latest/bigframes.operations.structs.StructFrameAccessor)\n- [2.16.0](/python/docs/reference/bigframes/2.16.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.15.0](/python/docs/reference/bigframes/2.15.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.14.0](/python/docs/reference/bigframes/2.14.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.13.0](/python/docs/reference/bigframes/2.13.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.12.0](/python/docs/reference/bigframes/2.12.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.11.0](/python/docs/reference/bigframes/2.11.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.10.0](/python/docs/reference/bigframes/2.10.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.9.0](/python/docs/reference/bigframes/2.9.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.8.0](/python/docs/reference/bigframes/2.8.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.7.0](/python/docs/reference/bigframes/2.7.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.6.0](/python/docs/reference/bigframes/2.6.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.5.0](/python/docs/reference/bigframes/2.5.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.4.0](/python/docs/reference/bigframes/2.4.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.3.0](/python/docs/reference/bigframes/2.3.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.2.0](/python/docs/reference/bigframes/2.2.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.1.0](/python/docs/reference/bigframes/2.1.0/bigframes.operations.structs.StructFrameAccessor)\n- [2.0.0](/python/docs/reference/bigframes/2.0.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.42.0](/python/docs/reference/bigframes/1.42.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.41.0](/python/docs/reference/bigframes/1.41.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.40.0](/python/docs/reference/bigframes/1.40.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.39.0](/python/docs/reference/bigframes/1.39.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.38.0](/python/docs/reference/bigframes/1.38.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.37.0](/python/docs/reference/bigframes/1.37.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.36.0](/python/docs/reference/bigframes/1.36.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.35.0](/python/docs/reference/bigframes/1.35.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.34.0](/python/docs/reference/bigframes/1.34.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.33.0](/python/docs/reference/bigframes/1.33.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.32.0](/python/docs/reference/bigframes/1.32.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.31.0](/python/docs/reference/bigframes/1.31.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.30.0](/python/docs/reference/bigframes/1.30.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.29.0](/python/docs/reference/bigframes/1.29.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.28.0](/python/docs/reference/bigframes/1.28.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.27.0](/python/docs/reference/bigframes/1.27.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.26.0](/python/docs/reference/bigframes/1.26.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.25.0](/python/docs/reference/bigframes/1.25.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.24.0](/python/docs/reference/bigframes/1.24.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.22.0](/python/docs/reference/bigframes/1.22.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.21.0](/python/docs/reference/bigframes/1.21.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.20.0](/python/docs/reference/bigframes/1.20.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.19.0](/python/docs/reference/bigframes/1.19.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.18.0](/python/docs/reference/bigframes/1.18.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.17.0](/python/docs/reference/bigframes/1.17.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.16.0](/python/docs/reference/bigframes/1.16.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.15.0](/python/docs/reference/bigframes/1.15.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.14.0](/python/docs/reference/bigframes/1.14.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.13.0](/python/docs/reference/bigframes/1.13.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.12.0](/python/docs/reference/bigframes/1.12.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.11.1](/python/docs/reference/bigframes/1.11.1/bigframes.operations.structs.StructFrameAccessor)\n- [1.10.0](/python/docs/reference/bigframes/1.10.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.9.0](/python/docs/reference/bigframes/1.9.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.8.0](/python/docs/reference/bigframes/1.8.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.7.0](/python/docs/reference/bigframes/1.7.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.6.0](/python/docs/reference/bigframes/1.6.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.5.0](/python/docs/reference/bigframes/1.5.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.4.0](/python/docs/reference/bigframes/1.4.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.3.0](/python/docs/reference/bigframes/1.3.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.2.0](/python/docs/reference/bigframes/1.2.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.1.0](/python/docs/reference/bigframes/1.1.0/bigframes.operations.structs.StructFrameAccessor)\n- [1.0.0](/python/docs/reference/bigframes/1.0.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.26.0](/python/docs/reference/bigframes/0.26.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.25.0](/python/docs/reference/bigframes/0.25.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.24.0](/python/docs/reference/bigframes/0.24.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.23.0](/python/docs/reference/bigframes/0.23.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.22.0](/python/docs/reference/bigframes/0.22.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.21.0](/python/docs/reference/bigframes/0.21.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.20.1](/python/docs/reference/bigframes/0.20.1/bigframes.operations.structs.StructFrameAccessor)\n- [0.19.2](/python/docs/reference/bigframes/0.19.2/bigframes.operations.structs.StructFrameAccessor)\n- [0.18.0](/python/docs/reference/bigframes/0.18.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.17.0](/python/docs/reference/bigframes/0.17.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.16.0](/python/docs/reference/bigframes/0.16.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.15.0](/python/docs/reference/bigframes/0.15.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.14.1](/python/docs/reference/bigframes/0.14.1/bigframes.operations.structs.StructFrameAccessor)\n- [0.13.0](/python/docs/reference/bigframes/0.13.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.12.0](/python/docs/reference/bigframes/0.12.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.11.0](/python/docs/reference/bigframes/0.11.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.10.0](/python/docs/reference/bigframes/0.10.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.9.0](/python/docs/reference/bigframes/0.9.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.8.0](/python/docs/reference/bigframes/0.8.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.7.0](/python/docs/reference/bigframes/0.7.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.6.0](/python/docs/reference/bigframes/0.6.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.5.0](/python/docs/reference/bigframes/0.5.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.4.0](/python/docs/reference/bigframes/0.4.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.3.0](/python/docs/reference/bigframes/0.3.0/bigframes.operations.structs.StructFrameAccessor)\n- [0.2.0](/python/docs/reference/bigframes/0.2.0/bigframes.operations.structs.StructFrameAccessor) \n\n StructFrameAccessor(data: bigframes.dataframe.DataFrame)\n\nAccessor object for structured data properties of the Series values.\n\nMethods\n-------\n\n### explode\n\n explode(column, *, separator: str = \".\") -\u003e bigframes.dataframe.DataFrame\n\nExtract all child fields of struct column(s) and add to the DataFrame.\n\n**Examples:** \n\n \u003e\u003e\u003e import bigframes.pandas as bpd\n \u003e\u003e\u003e import pyarrow as pa\n \u003e\u003e\u003e bpd.options.display.progress_bar = None\n \u003e\u003e\u003e countries = bpd.Series([\"cn\", \"es\", \"us\"])\n \u003e\u003e\u003e files = bpd.Series(\n ... [\n ... {\"version\": 1, \"project\": \"pandas\"},\n ... {\"version\": 2, \"project\": \"pandas\"},\n ... {\"version\": 1, \"project\": \"numpy\"},\n ... ],\n ... dtype=bpd.ArrowDtype(pa.struct(\n ... [(\"version\", pa.int64()), (\"project\", pa.string())]\n ... ))\n ... )\n \u003e\u003e\u003e downloads = bpd.Series([100, 200, 300])\n \u003e\u003e\u003e df = bpd.DataFrame({\"country\": countries, \"file\": files, \"download_count\": downloads})\n \u003e\u003e\u003e df.struct.explode(\"file\")\n country file.version file.project download_count\n 0 cn 1 pandas 100\n 1 es 2 pandas 200\n 2 us 1 numpy 300\n \u003cBLANKLINE\u003e\n [3 rows x 4 columns]"]]