Split' City,State Zip'在pandas dataframe

时间:2016-12-23 00:30:17

标签: python-3.x pandas

我正在尝试将包含City,State和Zip的列拆分为三列。列中的数据采用以下格式:' City,State Zip' - 逗号将城市与州分开,以及将州与邮政编码分开的空格。我可以使用以下方式拆分城市:

df['Owner City State Zip'].str.split(',').apply(lambda x: x[0]

但出于某些原因,当我尝试以下方法来拆分状态和zip时:

df['Owner City State Zip'].str.split(',').apply(lambda x: x[1]

我收到错误 - Index is out of range

任何帮助将不胜感激!这似乎微不足道,但比我预期的要困难得多。

1 个答案:

答案 0 :(得分:5)

考虑df

df = pd.DataFrame({'Owner City State Zip': ["Los Angeles, CA 90015"]})

print(df)

    Owner City State Zip
0  Los Angeles, CA 90015

我会使用这个方便的正则表达式和pandas str字符串访问器

regex = r'(?P<City>[^,]+)\s*,\s*(?P<State>[^\s]+)\s+(?P<Zip>\S+)'
df['Owner City State Zip'].str.extract(regex)

          City State    Zip
0  Los Angeles    CA  90015