У меня есть ряд панд разных возрастных диапазонов:
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