Pandas对某列按范围分割、取分组标签
参考其他人的分享后,确认按如下方式可以切割dataframe。
import pandas as pd
df = pd.read_excel('in.xlsx')
#划定分组范围
#由于pandas的默认切割方式为左开右闭,所以range第一个参数为最小值-1,第2个参数为最大值+1
bins = list(range(-1,16,5))
#按范围切割dataframe
score_cut = pd.cut(df['A'], bins)
df_groups = df.groupby(score_cut)
#查看每个分组的样本数量
print(pd.value_counts(score_cut))
#获得每个分组的标签
groups_name = df_groups.dtypes.index.to_tuples()
print("index\n",groups_name)
#后续实验
max = df_groups['B'].max()
print("max\n",max)
结果如下图所示