在Python中合并变量的有效方法

时间:2018-10-02 16:24:15

标签: python pandas

全部

我是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() ]

谢谢!

1 个答案:

答案 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()