python - 附加 pandas.core.categorical.Categories
问题描述
我正在尝试对每个第 n 个类别进行子集化,然后附加最后一个类别。
这是一个例子:
1)制作类别
import pandas as pd
import numpy as np
a = np.arange(0, 10, 1)
b = np.arange(0, 10, 1)
c = pd.cut(x = b.tolist(), bins = a, right = True, include_lowest = True)
2)子集类别
sub_c = c[0::4]
这就是麻烦,我想将最后一个类别附加到sub_c
,例如:
sub_c.append(c[-1])
但我得到了错误:'Categorical' object has no attribute append.
那么我如何将这个类别添加到最后呢?
解决方案
您可以选择最后一个类别以及其他类别:
sub_c = c[list(range(0, c.size, 4)) + [-1]].remove_unused_categories()
#[(-0.001, 1.0], (3.0, 4.0], (7.0, 8.0], (8.0, 9.0]], ...
另一种选择是准备分类代码列表:
codes = np.concatenate([c[0::4].codes, c[[-1]].codes])
sub_c = c.from_codes(codes, c.categories).remove_unused_categories()
#[(-0.001, 1.0], (3.0, 4.0], (7.0, 8.0], (8.0, 9.0]], ....
不要忘记调用.remove_unused_categories()
以删除未使用的类别。
推荐阅读
- amazon-web-services - cloudfront - lambda 函数 - 使用 KMS 的 s3 加密
- azure - Azure WebJob 未从 QueueTrigger 触发
- javascript - Mongoose:计算数组元素
- c++ - 将 RGBA 二值图像转换为 YCbCr 但结果不如预期
- python - 如何从python中的yyyyww列中提取一周的最后一天
- flutter - Flutter Web URL 导航,如 http://localhost:60117/ItemDetails?pId=1 不起作用
- linux - 使用 linux 选项发布的 winforms 应用程序是否在 linux 操作系统上运行?
- javascript - 是否有可能在伊斯坦布尔 JS 覆盖率报告中查看哪些测试实际上负责覆盖这条线?
- python - 使用 Python 将此 Json 文件添加到 mySQL 数据库中
- kdb - 如何在kdb中排除字符串中的一些记录?