从熊猫框架中的一组子串中分割出一个字符串

时间:2018-02-03 04:42:22

标签: python string pandas

我正在处理来自各种来源的数据集,而我的列是捕获例如城市名称的框架。某些城市名​​称在括号中具有州名称,其他城市名称具有邮政编码。如何获取这些额外信息并仅保留城市名称? Example of data

在某些情况下,邮政编码和城市名称之间没有空格。 以下是所需的框架: Desired frame

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式replace

  • \s*一个或零空间
  • \d+一个或多个数字
  • \(.*\) +括号之间的所有字符串
df = pd.DataFrame([{'City Name': 'Dallas'} ,
                   {'City Name': 'New York (NY)'} ,
                   {'City Name': 'West Orange 07052'} ,
                   {'City Name': 'Orlando (Florda)'} ,
                   {'City Name': 'Camdem (NJ)'} ,
                   {'City Name': 'Boston'} ,
                   {'City Name': 'Harrison07029'}])

df['new'] = df['City Name'].replace(['\s*\d+', '\s*\(.*\)'], '', regex=True)
print (df)
           City Name          new
0             Dallas       Dallas
1      New York (NY)     New York
2  West Orange 07052  West Orange
3   Orlando (Florda)      Orlando
4        Camdem (NJ)       Camdem
5             Boston       Boston
6      Harrison07029     Harrison