Pandas分类

  • categorical data是指分类数据:数据类型为:男女、班级(一班、二班)、省份(河北、江苏等),若使用赋值法给变量赋值,例如(男=1,女=0),数字1,0之间没有大小之分,不能认为1是比0大的。
  • numerical data是指数值型数据:收入(1000元,500元),是可以进行比较大小并进行运算的数据。

从0.15版本开始,pandas可以在DataFrame中支持Categorical类型的数据,

Pandas可以在DataFrame中包含分类数据

df = pd.DataFrame({"id":[1,2,3,4,5,6], "raw_grade":['a', 'b', 'b', 'a', 'a', 'e']})
df
df["raw_grade"]

#1 将原始grade成绩转换为分类数据
df["grade"] = df["raw_grade"].astype("category")
df["grade"]

#2.重命名分类数据为更有意义的名称:
df["grade"].cat.categories = ["very good", "good", "very bad"]
df

#3.对类别进行重新排序,增加缺失的类别:
df["grade"] = df["grade"].cat.set_categories(["very bad", "bad", "medium", "good", "very good"])
df["grade"]

#4.按整理后的类别排序(并非词汇的顺序)
df.sort_values(by="grade")

#5.按类别分组也包括空类别:
df.groupby("grade").size()