Python如何获取日期标记的第一个元素

时间:2014-06-12 00:08:54

标签: python string date vector pandas

我使用的是Python 2.7,我的数据如下所示:

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

我想解析DateVar以创建2个新字段:a' month'田野和一年的生活领域。

我能够将DateVar标记为'通过矢量化字符串方法:

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

这比我想要的更接近,所以接下来我尝试使用以下代码来分割月份[9,10,2]:

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

但出乎意料的是,我得到了:

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

那么如何才能获得所有月份的矢量?

3 个答案:

答案 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

答案 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']

答案 2 :(得分:0)

v = [x[0] for x in df.DateVar.str.split('/')]