[英]Python How to get 1st element of date token
我正在使用Python 2.7,我的数据如下所示:
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']
那么如何获得所有月份的向量?
如果只需要一列,则可以使用:
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
这是因为
>>> df.DateVar.str.split('/')
0 [9, 1, 2013]
1 [10, 1, 2013]
2 [2, 1, 2014]
所以
>>> df.DateVar.str.split('/')[0]
['9', '1', '2013']
v = [x[0] for x in df.DateVar.str.split('/')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.