У меня есть фрейм данных:
print(df_test)
Name Birth Date
0 Anna B Wilson JUL 1861
1 Victor C Burnett NOV 1847
2 Ausia Burnett JUN 1898
3 Alfred Burnett MAR 1896
4 Viola Burnett AUG 1894
Я бы хотел, чтобы результат был:
Name Birth Date
0 Anna B Wilson 7-1861
1 Victor C Burnett 11-1847
2 Ausia Burnett 6-1898
3 Alfred Burnett 3-1896
4 Viola Burnett 8-1894
Есть ли у меня краткий способ сделать это без написания отдельного регулярного выражения на каждый месяц, т.е.
df_test = df_test.replace(to_replace ='(MAR)\s(\d{4})', value = r'3-\2', regex = True)
df_test = df_test.replace(to_replace ='(JUN)\s(\d{4})', value = r'6-\2', regex = True)
df_test = df_test.replace(to_replace ='(JUL)\s(\d{4})', value = r'7-\2', regex = True)
df_test = df_test.replace(to_replace ='(AUG)\s(\d{4})', value = r'8-\2', regex = True)
df_test = df_test.replace(to_replace ='(NOV)\s(\d{4})', value = r'11-\2', regex = True)
print(df_test)
?
EDIT: Значит, есть ложка дегтя. Не все данные даты имеют одинаковый формат. Например, есть аномалии, подобные тем, что в строках 5-8:
Name Birth Date
0 Anna B Wilson JUL 1861
1 Victor C Burnett NOV 1847
2 Ausia Burnett JUN 1898
3 Alfred Burnett MAR 1896
4 Viola Burnett AUG 1894
5 Marinda Lynde 1843
6 Iola Staffen Jan Abt 1880
7 Maryella Dolores Staffin 30 AUG 1913
8 Norman Lawrence Schmitt 22 JUN 1945