in core/maxframe/dataframe/misc/get_dummies.py [0:0]
def __call__(self, data):
if isinstance(data, (list, tuple)):
data = asseries(data)
elif isinstance(data, pd.Series):
data = from_pandas_series(data)
elif isinstance(data, pd.DataFrame):
data = from_pandas_df(data)
if self.prefix is not None:
if isinstance(self.prefix, list):
if self.columns is not None:
encoding_col_num = len(self.columns)
else:
encoding_col_num = 0
for dtype in data.dtypes.values:
if dtype.kind in _encoding_dtype_kind:
encoding_col_num += 1
prefix_num = len(self.prefix)
if prefix_num != encoding_col_num:
raise ValueError(
f"Length of 'prefix' ({prefix_num}) did not match "
+ f"the length of the columns being encoded ({encoding_col_num})"
)
elif isinstance(self.prefix, dict):
if self.columns is not None:
encoding_col_num = len(self.columns)
prefix_num = len(self.prefix)
if prefix_num != encoding_col_num:
raise ValueError(
f"Length of 'prefix' ({prefix_num}) did not match "
+ f"the length of the columns being encoded ({encoding_col_num})"
)
columns = self.prefix.keys()
for columns_columnname, prefix_columnname in zip(
columns, list(self.columns)
):
if columns_columnname != prefix_columnname:
raise KeyError(f"{columns_columnname}")
else:
self.columns = list(self.prefix.keys())
# Convert prefix from dict to list, to simplify tile work
self.prefix = list(self.prefix.values())
return self.new_dataframe(
[data],
shape=(np.nan, np.nan),
dtypes=None,
index_value=data.index_value,
columns_value=None,
)