拆分列regex数据帧python



我在数据帧中有一列,在某些行中我有状态,有时只有城市。例如,在某些行中,我只有:"洛杉矶",但在其他行中,可能有"CA洛杉矶"。

我想将该列拆分为两个新列:州和城市,如果没有指定州,则可以为空。类似这样的东西:

国家迈阿密佛罗里达州休斯顿

您可以使用

^(?:([A-Z]{2})s+)?(.*)

请参阅regex演示。详细信息:

  • ^-字符串的开头
  • (?:([A-Z]{2})s+)?-的可选出现
    • ([A-Z]{2})-组1:两个大写ASCII字母
    • s+-一个或多个空白
  • (.*)-第2组:除了换行字符之外的任何零个或多个字符,尽可能多

如果您正在使用Pandas,请使用

df[['STATE','CITY']] = df['COLUMN'].str.extract(r'^(?:([A-Z]{2})s+)?(.*)', expand=False)

最新更新