當前位置: 首頁>>代碼示例>>Python>>正文


Python types.is_categorical方法代碼示例

本文整理匯總了Python中pandas.api.types.is_categorical方法的典型用法代碼示例。如果您正苦於以下問題:Python types.is_categorical方法的具體用法?Python types.is_categorical怎麽用?Python types.is_categorical使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在pandas.api.types的用法示例。


在下文中一共展示了types.is_categorical方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: get_groups

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def get_groups(adata, groups, groupby=None):
    if not isinstance(groupby, str) or groupby not in adata.obs.keys():
        groupby = (
            "clusters"
            if "clusters" in adata.obs.keys()
            else "louvain"
            if "louvain" in adata.obs.keys()
            else None
        )
    if groups is True:
        return None, groupby
    if groups is not None and not isinstance(groups, str) and len(groups) == 1:
        groups = groups[0]
    if isinstance(groups, str):
        cats = [""]
        if is_categorical(adata, groupby):
            cats = adata.obs[groupby].cat.categories
        if ":" in groups and not np.any([":" in cat for cat in cats]):
            groupby, groups = groups.split(":")
            groups = groups.strip()
        if "," in groups and not np.any(["," in cat for cat in cats]):
            groups = [a.strip() for a in groups.split(",")]
    if isinstance(groups, str):
        groups = [groups]
    return groups, groupby 
開發者ID:theislab,項目名稱:scvelo,代碼行數:27,代碼來源:utils.py

示例2: get_colors

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def get_colors(adata, c):
    if is_color_like(c):
        return c
    else:
        if f"{c}_colors" not in adata.uns.keys():
            palette = default_palette(None)
            palette = adjust_palette(palette, length=len(adata.obs[c].cat.categories))
            n_cats = len(adata.obs[c].cat.categories)
            adata.uns[f"{c}_colors"] = palette[:n_cats].by_key()["color"]
        if isinstance(adata.uns[f"{c}_colors"], dict):
            cluster_ix = adata.obs[c].values
        else:
            cluster_ix = adata.obs[c].cat.codes.values
        return np.array(
            [
                adata.uns[f"{c}_colors"][cluster_ix[i]]
                if cluster_ix[i] != -1
                else "lightgrey"
                for i in range(adata.n_obs)
            ]
        ) 
開發者ID:theislab,項目名稱:scvelo,代碼行數:23,代碼來源:utils.py

示例3: ordinal

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def ordinal(arr):
        """
        Return True if array is an ordered categorical

        Parameters
        ----------
        arr : numpy.array
            Must have a dtype

        Returns
        -------
        out : bool
            Whether array `arr` is an ordered categorical
        """
        if pdtypes.is_categorical(arr):
            return arr.cat.ordered
        return False 
開發者ID:has2k1,項目名稱:plotnine,代碼行數:19,代碼來源:utils.py

示例4: _remove_unused_categories

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def _remove_unused_categories(self, df_full, df_sub, uns):
        from pandas.api.types import is_categorical

        for k in df_full:
            if not is_categorical(df_full[k]):
                continue
            all_categories = df_full[k].cat.categories
            df_sub[k].cat.remove_unused_categories(inplace=True)
            # also correct the colors...
            color_key = f"{k}_colors"
            if color_key not in uns:
                continue
            color_vec = uns[color_key]
            if np.array(color_vec).ndim == 0:
                # Make 0D arrays into 1D ones
                uns[color_key] = np.array(color_vec)[(None,)]
            elif len(color_vec) != len(all_categories):
                # Reset colors
                del uns[color_key]
            else:
                idx = np.where(np.in1d(all_categories, df_sub[k].cat.categories))[0]
                uns[color_key] = np.array(color_vec)[(idx,)] 
開發者ID:theislab,項目名稱:anndata,代碼行數:24,代碼來源:anndata.py

示例5: test_readwrite_zarr

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def test_readwrite_zarr(typ, tmp_path):
    X = typ(X_list)
    adata_src = ad.AnnData(X, obs=obs_dict, var=var_dict, uns=uns_dict)
    adata_src.raw = adata_src
    assert not is_categorical(adata_src.obs["oanno1"])
    adata_src.write_zarr(tmp_path / "test_zarr_dir", chunks=True)

    adata = ad.read_zarr(tmp_path / "test_zarr_dir")
    assert is_categorical(adata.obs["oanno1"])
    assert not is_categorical(adata.obs["oanno2"])
    assert adata.obs.index.tolist() == ["name1", "name2", "name3"]
    assert adata.obs["oanno1"].cat.categories.tolist() == ["cat1", "cat2"]
    assert is_categorical(adata.raw.var["vanno2"])
    assert np.all(adata.obs == adata_src.obs)
    assert np.all(adata.var == adata_src.var)
    assert np.all(adata.var.index == adata_src.var.index)
    assert adata.var.index.dtype == adata_src.var.index.dtype
    assert type(adata.raw.X) is type(adata_src.raw.X)
    assert np.allclose(asarray(adata.raw.X), asarray(adata_src.raw.X))
    assert np.all(adata.raw.var == adata_src.raw.var)
    assert isinstance(adata.uns["uns4"]["a"], (int, np.integer))
    assert isinstance(adata_src.uns["uns4"]["a"], (int, np.integer))
    assert type(adata.uns["uns4"]["c"]) is type(adata_src.uns["uns4"]["c"])
    assert_equal(adata, adata_src) 
開發者ID:theislab,項目名稱:anndata,代碼行數:26,代碼來源:test_readwrite.py

示例6: cat_concat

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def cat_concat(*args):
    """
    Concatenate categoricals and combine the categories

    Parameters
    ----------
    *args : tuple
        Categoricals to be concatenated

    Examples
    --------
    >>> c1 = pd.Categorical(['a', 'b'], categories=['b', 'a'])
    >>> c2 = pd.Categorical(['d', 'a', 'c'])
    >>> cat_concat(c1, c2)
    [a, b, d, a, c]
    Categories (4, object): [b, a, c, d]

    Notes
    -----
    The resulting category is not ordered.
    """
    categories = pd.unique(list(chain(*(
        c.categories if pdtypes.is_categorical(c) else c
        for c in args
    ))))
    cs = pd.Categorical(
        list(chain(*(c for c in args))),
        categories=categories
    )
    return cs 
開發者ID:has2k1,項目名稱:plydata,代碼行數:32,代碼來源:cat_tools.py

示例7: as_categorical

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def as_categorical(c, copy=True):
    """
    Convert input to a categorical

    Parameters
    ----------
    c : categorical_like
        Sequence of objects
    copy : bool
        If `True` and c is alread a categorical, return
        a copy of `c` otherwise return `c`.

    Returns
    -------
    out : categorical
        Categorical made out of `c` or copy of `c`
        if it was a categorical

    """
    if not pdtypes.is_categorical(c):
        c = pd.Categorical(c)
    elif copy:
        c = c.copy()
    return c


# Temporary functions 
開發者ID:has2k1,項目名稱:plydata,代碼行數:29,代碼來源:cat_tools.py

示例8: _series_to_tensor

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def _series_to_tensor(series):
    if is_categorical(series):
        return torch.LongTensor(series.cat.codes.values.astype('int64'))
    else:       # numeric
        return torch.FloatTensor(series.values) 
開發者ID:dmlc,項目名稱:dgl,代碼行數:7,代碼來源:builder.py

示例9: autoprep_gbdt

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def autoprep_gbdt(algorithm_type: str, X_train: pd.DataFrame, X_test: Optional[pd.DataFrame],
                  categorical_feature_to_treat: Optional[List[str]] = None) -> Tuple[pd.DataFrame, pd.DataFrame]:
    if categorical_feature_to_treat is None:
        categorical_feature_to_treat = [c for c in X_train.columns if X_train[c].dtype.name in ['object', 'category']]

    # LightGBM:
    # Can handle categorical dtype. Otherwise, int, float or bool is acceptable for categorical columns.
    # https://lightgbm.readthedocs.io/en/latest/Advanced-Topics.html#categorical-feature-support
    #
    # CatBoost:
    # int, float, bool or str is acceptable for categorical columns. NaN should be filled.
    # https://catboost.ai/docs/concepts/faq.html#why-float-and-nan-values-are-forbidden-for-cat-features
    #
    # XGBoost:
    # All categorical column should be encoded beforehand.

    if algorithm_type == 'lgbm':
        # LightGBM can handle categorical dtype natively
        categorical_feature_to_treat = [c for c in categorical_feature_to_treat if not is_categorical(X_train[c])]

    if algorithm_type == 'cat' and len(categorical_feature_to_treat) > 0:
        X_train = X_train.copy()
        X_test = X_test.copy() if X_test is not None else X_train.iloc[:1, :].copy()  # dummy
        for c in categorical_feature_to_treat:
            X_train[c], X_test[c] = _fill_na_by_unique_value(X_train[c], X_test[c])

    if algorithm_type in ('lgbm', 'xgb') and len(categorical_feature_to_treat) > 0:
        assert X_test is not None, "X_test is required for XGBoost with categorical variables"
        X_train = X_train.copy()
        X_test = X_test.copy()

        for c in categorical_feature_to_treat:
            X_train[c], X_test[c] = _fill_na_by_unique_value(X_train[c], X_test[c])
            le = LabelEncoder()
            concat = np.concatenate([X_train[c].values, X_test[c].values])
            concat = le.fit_transform(concat)
            X_train[c] = concat[:len(X_train)]
            X_test[c] = concat[len(X_train):]

    return X_train, X_test 
開發者ID:nyanp,項目名稱:nyaggle,代碼行數:42,代碼來源:auto_prep.py

示例10: _fill_na_by_unique_value

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def _fill_na_by_unique_value(strain: pd.Series, stest: Optional[pd.Series]) -> Tuple[pd.Series, pd.Series]:
    if is_categorical(strain):
        return strain.cat.codes, stest.cat.codes
    elif is_integer_dtype(strain.dtype):
        fillval = min(strain.min(), stest.min()) - 1
        return strain.fillna(fillval), stest.fillna(fillval)
    else:
        return strain.astype(str), stest.astype(str) 
開發者ID:nyanp,項目名稱:nyaggle,代碼行數:10,代碼來源:auto_prep.py

示例11: is_categorical

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def is_categorical(data, c=None):
    from pandas.api.types import is_categorical as cat

    if c is None:
        return cat(data)  # if data is categorical/array
    if not is_view(data):  # if data is anndata view
        strings_to_categoricals(data)
    return isinstance(c, str) and c in data.obs.keys() and cat(data.obs[c]) 
開發者ID:theislab,項目名稱:scvelo,代碼行數:10,代碼來源:utils.py

示例12: get_value_counts

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def get_value_counts(adata, color):
    value_counts = adata.obs[color].value_counts()
    probs = np.array(adata.obs[color])
    for cat in value_counts.index:
        probs[probs == cat] = value_counts[cat]
    return np.array(probs, dtype=np.float32) 
開發者ID:theislab,項目名稱:scvelo,代碼行數:8,代碼來源:utils.py

示例13: default_legend_loc

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def default_legend_loc(adata, color, legend_loc):
    n_categories = 0
    if is_categorical(adata, color):
        n_categories = len(adata.obs[color].cat.categories)
    if legend_loc is False:
        legend_loc = "none"
    elif legend_loc is None:
        legend_loc = "upper right" if n_categories <= 4 else "on data"
    return legend_loc 
開發者ID:theislab,項目名稱:scvelo,代碼行數:11,代碼來源:utils.py

示例14: compute_group

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def compute_group(cls, data, scales, **params):
        labels = ['x', 'y']
        X = np.array(data[labels])
        res = boxplot_stats(X, whis=params['coef'], labels=labels)[1]
        try:
            n = data['weight'].sum()
        except KeyError:
            n = len(data['y'])

        if len(np.unique(data['x'])) > 1:
            width = np.ptp(data['x']) * 0.9
        else:
            width = params['width']

        if pdtypes.is_categorical(data['x']):
            x = data['x'].iloc[0]
        else:
            x = np.mean([data['x'].min(), data['x'].max()])

        d = {'ymin': res['whislo'],
             'lower': res['q1'],
             'middle': [res['med']],
             'upper': res['q3'],
             'ymax': res['whishi'],
             'outliers': [res['fliers']],
             'notchupper': res['med']+1.58*res['iqr']/np.sqrt(n),
             'notchlower': res['med']-1.58*res['iqr']/np.sqrt(n),
             'x': x,
             'width': width,
             'relvarwidth': np.sqrt(n)}
        return pd.DataFrame(d) 
開發者ID:has2k1,項目名稱:plotnine,代碼行數:33,代碼來源:stat_boxplot.py

示例15: test_readwrite_h5ad

# 需要導入模塊: from pandas.api import types [as 別名]
# 或者: from pandas.api.types import is_categorical [as 別名]
def test_readwrite_h5ad(typ, dataset_kwargs, backing_h5ad):
    tmpdir = tempfile.TemporaryDirectory()
    tmpdirpth = Path(tmpdir.name)
    mid_pth = tmpdirpth / "mid.h5ad"

    X = typ(X_list)
    adata_src = ad.AnnData(X, obs=obs_dict, var=var_dict, uns=uns_dict)
    assert not is_categorical(adata_src.obs["oanno1"])
    adata_src.raw = adata_src
    adata_src.write(backing_h5ad, **dataset_kwargs)

    adata_mid = ad.read(backing_h5ad)
    adata_mid.write(mid_pth, **dataset_kwargs)

    adata = ad.read_h5ad(mid_pth)
    assert is_categorical(adata.obs["oanno1"])
    assert not is_categorical(adata.obs["oanno2"])
    assert adata.obs.index.tolist() == ["name1", "name2", "name3"]
    assert adata.obs["oanno1"].cat.categories.tolist() == ["cat1", "cat2"]
    assert is_categorical(adata.raw.var["vanno2"])
    assert np.all(adata.obs == adata_src.obs)
    assert np.all(adata.var == adata_src.var)
    assert np.all(adata.var.index == adata_src.var.index)
    assert adata.var.index.dtype == adata_src.var.index.dtype
    assert type(adata.raw.X) is type(adata_src.raw.X)
    assert type(adata.raw.varm) is type(adata_src.raw.varm)
    assert np.allclose(asarray(adata.raw.X), asarray(adata_src.raw.X))
    assert np.all(adata.raw.var == adata_src.raw.var)
    assert isinstance(adata.uns["uns4"]["a"], (int, np.integer))
    assert isinstance(adata_src.uns["uns4"]["a"], (int, np.integer))
    assert type(adata.uns["uns4"]["c"]) is type(adata_src.uns["uns4"]["c"])
    assert_equal(adata, adata_src) 
開發者ID:theislab,項目名稱:anndata,代碼行數:34,代碼來源:test_readwrite.py


注:本文中的pandas.api.types.is_categorical方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。