Pandas在read_excel中使用转换器指定Ordered Categorical数据类型

时间:2017-06-04 07:31:24

标签: python pandas

我将数据从Excel导入Pandas数据帧,并希望在read_excel()期间指定有序的分类数据类型。我希望这些数据的后续轮换将遵循排序,但它不会。

我可以在 read_excel()之后将数据类型转换为Categorical ,但我更喜欢在数据导入期间可以在转换器中定义它。

尝试1:

conv = {
    "COS_PACKAGE": lambda x: x.astype(pd.Categorical, 
                    categories=["Convergence", "Versatile", "Performance"], 
                    ordered=True)
}

df = pd.read_excel(r"data.xlsx", sheetname="DATA", converters=conv)

尝试2:

conv = {
    "COS_PACKAGE": lambda x: x.astype("categories", 
                    categories=["Convergence", "Versatile", "Performance"], 
                    ordered=True)
}

df = pd.read_excel(r"data.xlsx", sheetname="DATA", converters=conv)

修改

根据评论请求,这是我在数据导入后转换为Categorical的方式,这有效。

df["COS_PACKAGE"] = df["COS_PACKAGE"].astype("category",
                categories=["Convergence", "Versatile", "Performance"], 
                ordered=True)

0 个答案:

没有答案