pandas分类数据category

分类变量的创建

用Series创建

print(pd.Series(["a", "b", "c", "a"], dtype="category"))
0    a
1    b
2    c
3    a
dtype: category
Categories (3, object): [a, b, c]

对DataFrame指定类型创建

print(pd.DataFrame({
   'A':pd.Series(["a", "b", "c", "a"], dtype="category"),'B':list('abcd')}).dtypes)
A    category
B      object
dtype: object

利用内置Categorical类型创建

print(pd.Categorical(["a", "b", "c", "a"], categories=['a','b','c']))
print(pd.Series(pd.Categorical(["a", "b", "c", "a"], categories=['a','b','c'])))
[a, b, c, a]
Categories (3, object): [a, b, c]
0    a
1    b
2    c
3    a
dtype: category
Categories (3, object): [a, b, c]

利用cut函数创建

print('默认使用区间类型为标签')
print(pd.cut(np.random.randint(0,60,5), [0,10,30,60]))
print('可指定字符为标签')
print(pd.cut(np.random.randint(0,60,5), [0,10,30,60], right=False, labels=['0-10','10-30','30-60']))
默认使用区间类型为标签
[(30, 60], (30, 60], (10, 30], (0, 10], (10, 30]]
Categories (3, interval[int64]): [(0, 10] < (10, 30] < (30, 60]]
可指定字符为标签
[10-30, 30-60, 10-30, 30-60, 0-10]
Categories (3, object): [0-10 < 10-30 < 30-60]

分类变量的结构与性质

一个分类变量包括三个部分,元素值(values)、分类类别(categories)、是否有序(order)。从上面可以看出,使用cut函数创建的分类变量默认为有序分类变量。

describe方法

该方法描述了一个分类序列的情况,包括非缺失值个数、元素值类别数(不是分类类别数)、最多次出现的元素及其频数

s = pd.Series(pd.Categorical(["a", "b", "c", "a",np.nan], categories=['a','b','c','d']))
print(s.describe())
count     4
unique    3
top       a
freq      2
dtype: object

categories和ordered属性

categories和ordered查看分类类别和是否排序

print(s.cat.categories)
print(s.cat.ordered)
Index(['a', 'b', 'c', 'd'], dtype='object')
False

利用set_categories修改类别

修改分类,但本身值不会变化

s = pd
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值