@@ -22,12 +22,12 @@ def field(self, name_or_index: str | int):
22
22
>>> bpd.options.display.progress_bar = None
23
23
>>> s = bpd.Series(
24
24
... [
25
- ... {"version ": 1 , "project ": "pandas" },
26
- ... {"version ": 2 , "project ": "pandas" },
27
- ... {"version ": 1 , "project ": "numpy" },
25
+ ... {"project ": "pandas" , "version ": 1 },
26
+ ... {"project ": "pandas" , "version ": 2 },
27
+ ... {"project ": "numpy" , "version ": 1 },
28
28
... ],
29
29
... dtype=bpd.ArrowDtype(pa.struct(
30
- ... [("version ", pa.int64 ()), ("project ", pa.string ())]
30
+ ... [("project ", pa.string ()), ("version ", pa.int64 ())]
31
31
... ))
32
32
... )
33
33
@@ -41,7 +41,7 @@ def field(self, name_or_index: str | int):
41
41
42
42
Extract by field index.
43
43
44
- >>> s.struct.field(0 )
44
+ >>> s.struct.field(1 )
45
45
0 1
46
46
1 2
47
47
2 1
@@ -68,22 +68,22 @@ def explode(self):
68
68
>>> bpd.options.display.progress_bar = None
69
69
>>> s = bpd.Series(
70
70
... [
71
- ... {"version ": 1 , "project ": "pandas" },
72
- ... {"version ": 2 , "project ": "pandas" },
73
- ... {"version ": 1 , "project ": "numpy" },
71
+ ... {"project ": "pandas" , "version ": 1 },
72
+ ... {"project ": "pandas" , "version ": 2 },
73
+ ... {"project ": "numpy" , "version ": 1 },
74
74
... ],
75
75
... dtype=bpd.ArrowDtype(pa.struct(
76
- ... [("version ", pa.int64 ()), ("project ", pa.string ())]
76
+ ... [("project ", pa.string ()), ("version ", pa.int64 ())]
77
77
... ))
78
78
... )
79
79
80
80
Extract all child fields.
81
81
82
82
>>> s.struct.explode()
83
- version project
84
- 0 1 pandas
85
- 1 2 pandas
86
- 2 1 numpy
83
+ project version
84
+ 0 pandas 1
85
+ 1 pandas 2
86
+ 2 numpy 1
87
87
<BLANKLINE>
88
88
[3 rows x 2 columns]
89
89
@@ -113,8 +113,8 @@ def dtypes(self):
113
113
... ))
114
114
... )
115
115
>>> s.struct.dtypes()
116
- version Int64
117
116
project string[pyarrow]
117
+ version Int64
118
118
dtype: object
119
119
120
120
Returns:
@@ -140,21 +140,21 @@ def explode(self, column, *, separator: str = "."):
140
140
>>> countries = bpd.Series(["cn", "es", "us"])
141
141
>>> files = bpd.Series(
142
142
... [
143
- ... {"version ": 1 , "project ": "pandas" },
144
- ... {"version ": 2 , "project ": "pandas" },
145
- ... {"version ": 1 , "project ": "numpy" },
143
+ ... {"project ": "pandas" , "version ": 1 },
144
+ ... {"project ": "pandas" , "version ": 2 },
145
+ ... {"project ": "numpy" , "version ": 1 },
146
146
... ],
147
147
... dtype=bpd.ArrowDtype(pa.struct(
148
- ... [("version ", pa.int64 ()), ("project ", pa.string ())]
148
+ ... [("project ", pa.string ()), ("version ", pa.int64 ())]
149
149
... ))
150
150
... )
151
151
>>> downloads = bpd.Series([100, 200, 300])
152
152
>>> df = bpd.DataFrame({"country": countries, "file": files, "download_count": downloads})
153
153
>>> df.struct.explode("file")
154
- country file.version file.project download_count
155
- 0 cn 1 pandas 100
156
- 1 es 2 pandas 200
157
- 2 us 1 numpy 300
154
+ country file.project file.version download_count
155
+ 0 cn pandas 1 100
156
+ 1 es pandas 2 200
157
+ 2 us numpy 1 300
158
158
<BLANKLINE>
159
159
[3 rows x 4 columns]
160
160
0 commit comments