in core/maxframe/dataframe/misc/apply.py [0:0]
def _infer_df_func_returns(self, df, dtypes, dtype=None, name=None, index=None):
if isinstance(self.func, np.ufunc):
output_type = OutputType.dataframe
new_dtypes = None
index_value = "inherit"
new_elementwise = True
else:
if self.output_types is not None and (
dtypes is not None or dtype is not None
):
ret_dtypes = dtypes if dtypes is not None else (name, dtype)
ret_index_value = parse_index(index) if index is not None else None
self.elementwise = False
return ret_dtypes, ret_index_value
output_type = new_dtypes = index_value = None
new_elementwise = False
try:
empty_df = build_df(df, size=2)
with np.errstate(all="ignore"), quiet_stdio():
infer_df = empty_df.apply(
self.func,
axis=self.axis,
raw=self.raw,
result_type=self.result_type,
args=self.args,
**self.kwds,
)
if index_value is None:
if infer_df.index is empty_df.index:
index_value = "inherit"
else:
index_value = parse_index(pd.RangeIndex(-1))
if isinstance(infer_df, pd.DataFrame):
output_type = output_type or OutputType.dataframe
new_dtypes = new_dtypes or infer_df.dtypes
else:
output_type = output_type or OutputType.series
new_dtypes = (name or infer_df.name, dtype or infer_df.dtype)
new_elementwise = False if new_elementwise is None else new_elementwise
except: # noqa: E722 # nosec
pass
self.output_types = (
[output_type]
if not self.output_types and output_type
else self.output_types
)
dtypes = new_dtypes if dtypes is None else dtypes
index_value = index_value if index is None else parse_index(index)
self.elementwise = (
new_elementwise if self.elementwise is None else self.elementwise
)
return dtypes, index_value