zoukankan      html  css  js  c++  java
  • Datawhale

    数据的分类,在数据分析里很常见,学到这里,感觉是把excel里函数和编程融合在一起了,很方便。

    一、分类的创建、分类类别的更改

    1、可以用series创建,用Dataframe 和内置的Categorical来创建,或者利用cut函数创建(默认使用区间类型为标签)

    pd.Series(["a", "b", "c", "a"], dtype="category")
    0    a
    1    b
    2    c
    3    a
    dtype: category
    Categories (3, object): [a, b, c]
     
    temp_df = pd.DataFrame({'A':pd.Series(["a", "b", "c", "a"], dtype="category"),'B':list('abcd')})
    temp_df.dtypes
    A    category
    B      object
    dtype: object
     
    cat = pd.Categorical(["a", "b", "c", "a"], categories=['a','b','c'])
    pd.Series(cat)
    0    a
    1    b
    2    c
    3    a
    dtype: category
    Categories (3, object): [a, b, c]
    pd.cut(np.random.randint(0,60,5), [0,10,30,60])
    [(10, 30], (0, 10], (10, 30], (30, 60], (30, 60]]
    Categories (3, interval[int6
    NOTE:一个分类变量包括三个部分,元素值(values)、分类类别(categories)、是否有序(order);从上面可以看出,使用cut函数创建的分类变量默认为有序分类变量

    二、对分类数据的排序

    Pandas里有个概念:序。序的建立:

    (1)一般来说会将一个序列转为有序变量,可以利用as_ordered方法

    In [16]:
    s = pd.Series(["a", "d", "c", "a"]).astype('category').cat.as_ordered()
    s
    0    a
    1    d
    2    c
    3    a
    dtype: category
    Categories (3, object): [a < c < d]
     退化为无序变量,只需要使用as_unordered
    s.cat.as_unordered()
    0    a
    1    d
    2    c
    3    a
    dtype: category
    Categories (3, object): [a, c, d]

    (2)利用set_categories方法中的order参数

    pd.Series(["a", "d", "c", "a"]).astype('category').cat.set_categories(['a','c','d'],ordered=True)

    0    a
    1    d
    2    c
    3    a
    dtype: category
    Categories (3, object): [a < c < d]
    (3)利用reorder_categories方法【新设置的分类必须与原分类为同一集合】

    三、分类数据的比较(例子再写)

    1. 与标量或等长序列的比较

    (a)标量比较

    (b)等长序列比较

    2. 与另一分类变量的比较

    (a)等式判别(包含等号和不等号)【两个分类变量的等式判别需要满足分类完全相同】

    (b)不等式判别(包含>=,<=,<,>)两个分类变量的不等式判别需要满足两个条件:① 分类完全相同 ② 排序完全相同
  • 相关阅读:
    MySQL索引的操作
    MySQL表的操作02
    MySQL表的操作01
    字典实现简单购物车程序
    python 中if和elif的区别
    格式化操作---%方法
    正则表达式相关知识
    实现 像网易云音乐 播放列表那样的弹出型Dialog
    为什么在非UI线程中操作UI的改变失不安全的
    模板方法模式-Template Method
  • 原文地址:https://www.cnblogs.com/haiyanli/p/13200619.html
Copyright © 2011-2022 走看看