Вот способ, который предполагает только то, что числа, которым предшествует тире, находятся в конце:
df['ColumnA'].str.split('([A-z]+)(\d+)').str.join('-').str.strip('-')
0 ABC-1
1 ABC-2
2 ABC-3
3 ABC-4
Другой пример:
df = pd.DataFrame({'ColumnA':['asf1','Ads2','A34']})
даст:
df['ColumnA'].str.split('([A-z]+)(\d+)').str.join('-').str.strip('-')
0 asf-1
1 Ads-2
2 A-34