Python Pandas:将日期范围设置为-2 +5年,例如:31年->(29-36)年

时间:2019-01-31 07:06:38

标签: python pandas pandas-groupby

设置-2 +5年的日期范围,例如31年->(29-36)年

我的输入是

     age          
0    31 years  
1    25 years  

我的输出是

     age       age_range   
0    31 years  29-36 years  
1    25 years  23-30 years

1 个答案:

答案 0 :(得分:2)

先输入extract个数字值,然后再加上加号2和减号5

s = df['age'].str.extract('(\d+)', expand=False).astype(int)
df['age_range'] = s.sub(2).astype(str) + '-' + s.add(5).astype(str) + ' years'

另一种解决方案,感谢@IMCoins的建议:

#python 3.6+
df['age_range'] = [f'{x-2}-{x + 5} years' for x in s]
#python bellow
#df['age_range'] = ['{}-{} years'.format(x-2, x+5) for x in s]

print (df)
        age    age_range
0  31 years  29-36 years
1  25 years  23-30 years

如果需要常规范围,请使用binning