Я шокирован, что никто не спрашивал об этом раньше на SO ... поскольку это кажется достаточно простой проблемой.
У меня есть один столбец в панде Dataframe, который выглядит следующим образом:
df = pd.DataFrame(data=[['APPLEGATE WINERY 455.292049'],['AMAND FARM 849.827192'],['COBB FARM ST 1039.49357'],['DIRIGIA 2048.947284']], columns = ['Col1'])
Col1
0 APPLEGATE WINERY 455.292049
1 AMAND FARM 849.827192
2 COBB FARM ST 1039.49357
3 DIRIGIA 2048.947284
И я просто хочу отделить строковые символы от числовых, поэтому результат должен выглядеть следующим образом
Name Area
APPLEGATE WINERY 455.292049
AMAND FARM 849.827192
COBB FARM ST 1039.49357
DIRIGIA 2048.947284
Я знаю, что могу использовать Регулярные выражения в Python, но это кажется излишним, так как а) это просто разделение типов данных и б) строки имеют разную длину, а цифры имеют разное количество цифр.
Таким образом, один результат будет выглядеть следующим образом:
df['Name'] = df.Col1.str.extract('([A-Z]\w{0,})', expand=True)
df['Area'] = df.Col1.str.extract('(\d)', expand=True)
Но есть ли хорошее, чистое решение, позволяющее решить эту проблему без необходимости использовать RegEx и вместо этого разделять строки из чисел на два столбца?