We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent ff8a607 commit d21ad1aCopy full SHA for d21ad1a
pandas/core/arrays/arrow/array.py
@@ -1908,8 +1908,10 @@ def _explode(self):
1908
fill_value = pa.scalar([None], type=self._pa_array.type)
1909
mask = counts == 0
1910
if mask.any():
1911
- values = values.copy()
1912
- values[mask] = fill_value
+ # pc.if_else here is similar to `values[mask] = fill_value`
+ # but this avoids an object-dtype round-trip.
1913
+ pa_values = pc.if_else(~mask, values._pa_array, fill_value)
1914
+ values = type(self)(pa_values)
1915
counts = counts.copy()
1916
counts[mask] = 1
1917
values = values.fillna(fill_value)
0 commit comments