【发布时间】:2020-10-08 07:54:14
【问题描述】:
我有这个数据集
age
24
32
29
23
23
31
25
26
34
我想使用 python 进行分类并将结果保存到新列“agegroup”中,这样 年龄之间; 23 到 26 在年龄组列中返回 1, 27-30 在年龄组列中返回值 2 和 31-34 在年龄组列中返回 3
【问题讨论】:
标签: python pandas dataframe dataset
我有这个数据集
age
24
32
29
23
23
31
25
26
34
我想使用 python 进行分类并将结果保存到新列“agegroup”中,这样 年龄之间; 23 到 26 在年龄组列中返回 1, 27-30 在年龄组列中返回值 2 和 31-34 在年龄组列中返回 3
【问题讨论】:
标签: python pandas dataframe dataset
您可以使用pandas.cut。
给定:
>>> df
age
0 24
1 32
2 29
3 23
4 23
5 31
6 25
7 26
8 34
解决方案:
>>> df.assign(agegroup=pd.cut(df['age'], bins=[23, 27, 31, 35], right=False, labels=[1, 2, 3]))
age agegroup
0 24 1
1 32 3
2 29 2
3 23 1
4 23 1
5 31 3
6 25 1
7 26 1
8 34 3
【讨论】:
df.assign(agegroup= 比 df['agegroup']= 的值是多少
df.assign(agegroup=...) 给出了新的 df 但df['agegroup'] 改变了原来的 df。
您也可以使用字典来执行此操作。键值对。键将是不同的年龄范围,特定键的值将是该特定年龄组的计数。
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
【讨论】: