in core/maxframe/dataframe/misc/apply.py [0:0]
def _call_series(self, series, dtypes=None, dtype=None, name=None, index=None):
# for backward compatibility
dtype = dtype if dtype is not None else dtypes
if self.convert_dtype:
if self.output_types is not None and (
dtypes is not None or dtype is not None
):
infer_series = test_series = None
else:
test_series = build_series(series, size=2, name=series.name)
try:
with np.errstate(all="ignore"), quiet_stdio():
infer_series = test_series.apply(
self.func, args=self.args, **self.kwds
)
except: # noqa: E722 # nosec # pylint: disable=bare-except
infer_series = None
output_type = self._output_types[0]
if index is not None:
index_value = parse_index(index)
elif infer_series is not None:
if infer_series.index is test_series.index:
index_value = series.index_value
else: # pragma: no cover
index_value = parse_index(infer_series.index)
else:
index_value = parse_index(series.index_value)
if output_type == OutputType.dataframe:
if dtypes is None:
if infer_series is not None and infer_series.ndim == 2:
dtypes = infer_series.dtypes
else:
raise TypeError(
"Cannot determine dtypes, "
"please specify `dtypes` as argument"
)
columns_value = parse_index(dtypes.index, store_data=True)
return self.new_dataframe(
[series],
shape=(series.shape[0], len(dtypes)),
index_value=index_value,
columns_value=columns_value,
dtypes=dtypes,
)
else:
if (
dtype is None
and infer_series is not None
and infer_series.ndim == 1
):
dtype = infer_series.dtype
else:
dtype = dtype if dtype is not None else np.dtype(object)
if infer_series is not None and infer_series.ndim == 1:
name = name or infer_series.name
return self.new_series(
[series],
dtype=dtype,
shape=series.shape,
index_value=index_value,
name=name,
)
else:
dtype = dtype if dtype is not None else np.dtype("object")
return self.new_series(
[series],
dtype=dtype,
shape=series.shape,
index_value=series.index_value,
name=name,
)