从DataFrame中的字符串中获取特定字符

时间:2014-10-30 17:22:52

标签: python string pandas text-extraction

我从我读过的Excel文件中有一个Pandas DataFrame。我在数据框中有一个特定的列,其中包含以下任何形式的字符串:

22th/Dec if we receive order by 26/Sep
12th/Dec if we receive order by 26/Sep
10th/November if we receive order by 26th/Sep

我希望获取数字日期编号(例如22或12或10)和字符串月份名称(例如Dec或11月),所以我想创建一个仅限一个变量抓住日期编号和另一个抓住月份名称。

我可以使用一系列左/右​​here这样的权利,但事情并非如此简单。有时候数据可能会像第9条那样出现。或者' 8'在开始时所以我放置的字符数不会在那里工作,除非我做某种'如果长度> x,然后'码。什么是将特定字符抓取到新变量中的最简洁方法?

1 个答案:

答案 0 :(得分:0)

DataFrame str.extract方法采用正则表达式,这就是你想要的。

df['text_col'].str.extract(r'^(\d+)\S*/(\S+) ')

这将返回一个包含两列包含数据的Dataframe。

或者获得更好的标题,

>>> df['text_col'].str.extract(r'^(?P<day>\d+)\S*/(?P<month>\S+) ')
  day     month
0  22       Dec
1  12       Dec
2  10  November