PythonPandas:日期范围为2+5年,例如:31年>(2936)年

2024-03-29 14:37:31 发布

您现在位置:Python中文网/ 问答频道 /正文

日期范围为-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

Tags: gtagerange意见years
1条回答
网友
1楼 · 发布于 2024-03-29 14:37:31

首先^{}个数值,然后用加法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

相关问题 更多 >