<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_dummies( data, prefix=None, prefix_sep="_", dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None, ):
 """Convert categorical variable into indicator variables. Args: data (array-like, Series, or DataFrame):
 data to encode. prefix (string, [string]):
 Prefix to apply to each encoded column label. prefix_sep (string, [string]):
 Separator between prefix and value. dummy_na (bool):
 Add a column to indicate NaNs. columns: Which columns to encode. sparse (bool):
 Not Implemented: If True, returns SparseDataFrame. drop_first (bool):
 Whether to remove the first level of encoded data. dtype: The dtype for the get_dummies call. Returns: DataFrame or one-hot encoded data. """

    if sparse:
        raise NotImplementedError(
            "SparseDataFrame is not implemented. "
            "To contribute to Modin, please visit "
            "github.com/modin-project/modin."
        )
    if not isinstance(data, DataFrame):
        ErrorMessage.default_to_pandas("`get_dummies` on non-DataFrame")
        return DataFrame(
            pandas.get_dummies(
                data,
                prefix=prefix,
                prefix_sep=prefix_sep,
                dummy_na=dummy_na,
                columns=columns,
                sparse=sparse,
                drop_first=drop_first,
                dtype=dtype,
            )
        )
    else:
        new_manager = data._query_compiler.get_dummies(
            columns,
            prefix=prefix,
            prefix_sep=prefix_sep,
            dummy_na=dummy_na,
            drop_first=drop_first,
            dtype=dtype,
        )
        return DataFrame(query_compiler=new_manager)