2014-10-30 59 views
0

我从我阅读Excel文件有一个熊猫数据帧我有一个包含所有这些形式的字符串数据帧的特定列:获得从字符串特定字符的数据帧

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,但它并不那么简单。有时候,数据可能会在开始时显示为'9th'或'8th',所以我放置的字符数不会在那里工作,除非我做某种'if length> x,然后'代码。将特定字符拖入新变量的最简洁方法是什么?

回答

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