【发布时间】:2019-05-31 22:58:05
【问题描述】:
我有一个不同年龄段的熊猫系列:
s = pd.Series([14,1524,2534,3544,65])
我想创建一个这样的新系列:
0 0-14
1 15-24
2 25-34
3 35-44
4 65+
我可以使用映射来做到这一点:
s = pd.Series([14,1524,2534,3544,65])
age_map = {
14: '0-14',
1524: '15-24',
2534: '25-34',
3544: '35-44',
4554: '45-54',
5564: '55-64',
65: '65+'
}
s.map(age_map)
另外,使用多个正则表达式:
s = pd.Series([14,1524,2534,3544,65])
s = s.astype(str).str.replace(r'(\d\d)(\d\d)', r'\1-\2',regex=True)
s = s.astype(str).str.replace(r'14', r'0-14',regex=True)
s = s.astype(str).str.replace(r'65', r'65+',regex=True)
s
问题
我们可以将所有三个正则表达式组合成一个高级正则表达式并获得相同的结果吗?
类似:
s = pd.Series([14,1524,2534,3544,65])
pat = ''
pat_sub = ''
s = s.astype(str).str.replace(pat, pat_sub,regex=True)
s
【问题讨论】:
标签: python regex pandas dataframe replace