pandas实现年龄分组

pd.cut(df,bins=分组区间数据,labels=分组区间名)

^{}与参数right=False一起使用,表示不包括容器的最右边缘:

X_train_data = pd.DataFrame({'Age':[0,2,4,13,35,88,54]})

bins= [-99,0,2,4,13,20,110]
labels = ['Error','Infant','Toddler','Kid','Teen','Adult']
X_train_data_count = pd.cut(X_train_data['Age'], bins=bins, labels=labels, right=False)
print (X_train_data_count.value_counts() )

 

 

通常数据库的数量两都是很大的,python是单核的,处理起来比较慢。

所以我们使用category来提高速度。category使用分类操作明显更快,是因为底层的算法使用整数编码数组,而不是字符串数组。

bins_cat=pd.Series(bins).astype('category')
X_train_data_cat_count = pd.cut(X_train_data['Age'], bins=bins_cat, labels=labels, right=False)

X_train_data_cat_count.value_counts()



参考文献;
https://github.com/iamseancheney/python_for_data_analysis_2nd_chinese_version/blob/master/%E7%AC%AC12%E7%AB%A0%20pandas%E9%AB%98%E7%BA%A7%E5%BA%94%E7%94%A8.md

 

 

 

 

 



posted @ 2021-01-26 18:49  KJXY  阅读(1014)  评论(0)    收藏  举报