我很惊讶之前没有人在SO上问过这个问题,因为它看起来是一个足够简单的问题。
我有一个pandas数据框中的单列,看起来像这样:
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中可以使用正则表达式,但这似乎有些过度,因为a)它只是数据类型的分离,b)字符串长度不同,数字位数也不相同。
那么一个结果会开始看起来像这样:
df['Name'] = df.Col1.str.extract('([A-Z]\w{0,})', expand=True)
df['Area'] = df.Col1.str.extract('(\d)', expand=True)
但是有没有一个好的、干净的解决方案来解决这个问题,而不必费事使用正则表达式,而是将字符串和数字分开成两列呢?
32nd Street
吗? - user3483203