我有下面的数据框(使用python / pandas)并希望转换
q_string q_visits q_date
red 1790 02/10/2012 00:00
blue 364 02/10/2012 00:00
current 280 02/10/2012 00:00
molecular 259 02/10/2012 00:00
cell 201 02/10/2012 00:00
如何将'q_date'字段转换为SO-8601 DateTime格式(yyyy-MM-ddTHH:mm:ssZ)?
提前致谢。
答案 0 :(得分:8)
使用pandas datetools解析器解析日期,然后使用标准python strftime
函数对其进行格式化。
>>> df['q_date'].apply(
lambda x: pd.datetools.parse(x).strftime('%Y%m%dT%H:%M%SZ'))
0 20120210T00:0000Z
1 20120210T00:0000Z
2 20120210T00:0000Z
3 20120210T00:0000Z
4 20120210T00:0000Z
Name: q_date, dtype: object
答案 1 :(得分:6)
我会使用pd.to_datetime
和.dt accessor
pd.to_datetime(df['q_date']).dt.strftime('%Y-%m-%dT%H:%M%:%SZ')
答案 2 :(得分:0)
首先将您的q_date
列转换为datetime64[ns]
系列,然后使用自定义格式字符串将map
转换为列
In [178]: df = df.convert_objects(convert_dates='coerce')
In [179]: df
Out[179]:
q_string q_visits q_date
0 red 1790 2012-02-10 00:00:00
1 blue 364 2012-02-10 00:00:00
2 current 280 2012-02-10 00:00:00
3 molecular 259 2012-02-10 00:00:00
4 cell 201 2012-02-10 00:00:00
In [180]: df['iso_q_date'] = df.q_date.map(lambda x: datetime.datetime.strftime(x, '%y%m%dT%H:%M%SZ'))
In [181]: df
Out[181]:
q_string q_visits q_date iso_q_date
0 red 1790 2012-02-10 00:00:00 120210T00:0000Z
1 blue 364 2012-02-10 00:00:00 120210T00:0000Z
2 current 280 2012-02-10 00:00:00 120210T00:0000Z
3 molecular 259 2012-02-10 00:00:00 120210T00:0000Z
4 cell 201 2012-02-10 00:00:00 120210T00:0000Z