Python如何获取日期标记的第一个元素
我使用的是Python 2.7,我的数据如下所示:Python如何获取日期标记的第一个元素,python,string,date,vector,pandas,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以创建两个新字段:“月”字段和“年”字段 我能够通过矢量化字符串方法标记“DateVar”: df.DateVar.str.split('/'
import pandas as pd
df = pd.DataFrame({ 'DateVar' : ['9/1/2013', '10/1/2013', '2/1/2014'],
'Field' : 'foo' })
我想解析DateVar以创建两个新字段:“月”字段和“年”字段
我能够通过矢量化字符串方法标记“DateVar”:
df.DateVar.str.split('/')
这有点接近我想要的,所以接下来我尝试使用以下代码对月份[9,10,2]进行切片:
df.DateVar.str.split('/')[0]
但出乎意料的是,我得到了:
['9','1','2013']
那么我如何得到所有月份的向量呢 这是因为
>>> df.DateVar.str.split('/')
0 [9, 1, 2013]
1 [10, 1, 2013]
2 [2, 1, 2014]
所以
如果只需要一列,则可以使用:
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)
使用
map(int,df.DateVar.str.split('/')[0])
将每个元素转换为整数?您想要什么确切的输出?
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
v = [x[0] for x in df.DateVar.str.split('/')]