2014-06-12 25 views
0

我使用Python 2.7的第1个要素,我的数据是这样的:Python中如何获得最新令牌

import pandas as pd    
df = pd.DataFrame({ 'DateVar' : ['9/1/2013', '10/1/2013', '2/1/2014'], 
       'Field' : 'foo' }) 

我想分析DateVar创建2个新的领域:一个“月”字段和'年'字段。

我能来标记“DateVar”通过矢量字符串的方法:

df.DateVar.str.split('/') 

这是一个有点接近我想要的东西,所以后来我明年受审裁个月[9,10,2]使用下面的代码:

df.DateVar.str.split('/')[0] 

但出乎意料的是,我越来越:

[ '9', '1', '2013']

那么我怎样才能得到所有月份的矢量?

+0

使用'地图(INT,df.DateVar.str.split( '/')[0])'到每个元素转换为整数。 – Fabricator

+0

你想要什么确切的输出? –

回答

1

如果你只需要一列,你可以使用:

df.DateVar.str.split("/").str[0] 

如果您需要的月份和日期栏,使用str.extract

import pandas as pd    
df = pd.DataFrame({ 'DateVar' : ['9/1/2013', '10/1/2013', '2/1/2014'], 
       'Field' : 'foo' }) 

print df.DateVar.str.extract(r"(?P<month>\d+)/(?P<day>\d+)/\d+").astype(int) 

输出:

month day 
0  9 1 
1  10 1 
2  2 1 
0

这是因为

>>> df.DateVar.str.split('/') 
0  [9, 1, 2013] 
1 [10, 1, 2013] 
2  [2, 1, 2014] 

所以

>>> df.DateVar.str.split('/')[0] 
['9', '1', '2013'] 
0
v = [x[0] for x in df.DateVar.str.split('/')]