将年龄分类到另一个列年龄组

时间:2020-06-18 09:35:36

标签: python pandas dataframe dataset

我有这个数据集

CREATE INDEX index_cars_for_featured_carousels_v6
    ON cars USING btree
    ((
CASE
    WHEN featuring_score::text < 'C'::text THEN 1
    WHEN featuring_score::text = 'C'::text THEN 2
    WHEN featuring_score::text > 'C'::text THEN 3
    ELSE 4
END) ASC NULLS LAST, (
CASE
    WHEN au_rating >= 3 THEN 1
    WHEN au_rating = 0 THEN 2
    WHEN au_rating = 2 THEN 3
    WHEN au_rating = 1 THEN 4
    ELSE 6
END) ASC NULLS LAST, price ASC NULLS LAST, year ASC NULLS LAST, fuel COLLATE pg_catalog."default" ASC NULLS LAST, km ASC NULLS LAST)
    TABLESPACE pg_default
    WHERE sales_state::text = 'onsale'::text AND is_disabled IS NOT TRUE AND featuring_score IS NOT NULL AND images_count > 0;

我想使用python进行分类并将结果保存到新列“ agegroup”中,以便 年龄 23到26在年龄组列中返回1, 27-30返回年龄组列中的值2 和31-34在年龄组列中返回3

2 个答案:

答案 0 :(得分:3)

您可以使用pandas.cut

给出:

c_str

解决方案:

>>> df
   age
0   24
1   32
2   29
3   23
4   23
5   31
6   25
7   26
8   34

答案 1 :(得分:0)

您也可以使用字典来执行此操作。键值对。密钥将是不同的年龄范围,特定密钥的值将是该特定年龄组的计数。

groupDict = {'23-26':0,'27 -30':0,'31 -34':0}

for i in ages:
 if i>=23 and i<=26:
   groupDict['23-26']+=1
 elif i>=27 and i<=30:
   groupDict['27-30']+=1
 elif i>=31 and i<=34:
   groupDict['27-30']+=1