2014-10-30 61 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