全部
我是python的新手,正在尝试将数据分类到垃圾箱中。
假设,我有2列年龄和购买。 Age是一个连续变量,Purchase是一个二进制变量(1-是,0-否)。我想将年龄分类到垃圾箱中,然后查看每个垃圾箱中的总购买数量。
我已经编写了以下代码,但我真诚地相信,有这样做的更有效的方法。请检查以下内容,并提出新的方法或增强功能。
代码:
bins = [15, 30, 40, 50, 60, np.inf]
names = ['15-30', '30-40', '40-50', '50-60', '60+']
dataset['AgeRange'] = pd.cut(dataset['Age'], bins, labels=names)
df = [ dataset[dataset.AgeRange == '15-30'].Purchased.sum(),
dataset[dataset.AgeRange == '30-40'].Purchased.sum(),
dataset[dataset.AgeRange == '40-50'].Purchased.sum(),
dataset[dataset.AgeRange == '50-60'].Purchased.sum() ]
谢谢!
答案 0 :(得分:1)
您应该查看DataFrame.groupby
。还可以考虑使用列表理解来创建标签:
bins = [15, 30, 40, 50, 60, np.inf]
labels = [f'{i}+' if j==np.inf else f'{i}-{j}' for i, j in zip(bins, bins[1:])]
dataset['AgeRange'] = pd.cut(dataset['Age'], bins, labels)
dataset.groupby('AgeRange')['Purchased'].sum()