如何在Pandas数据帧中将日期转换为ISO-8601 DateTime格式

use*_*289 5 python date pandas

我有下面的数据帧(使用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
Run Code Online (Sandbox Code Playgroud)

如何将'q_date'字段转换为SO-8601 DateTime格式(yyyy-MM-ddTHH:mm:ssZ)?

提前致谢.

小智 16

我会使用pd.to_datetime.dt accessor

pd.to_datetime(df['q_date']).dt.strftime('%Y-%m-%dT%H:%M:%SZ')
Run Code Online (Sandbox Code Playgroud)

另请参阅strftime() 和 strptime() 格式代码


Vik*_*kez 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
Run Code Online (Sandbox Code Playgroud)

  • viktor 这将其保留为对象数据类型,因此没那么有用,最好使用 to_datetime (2认同)
  • @Jeff我同意,只是OP请求一个字符串,我写的方法比`pd.to_datetime(df ['q_date'])。apply(lambda x:x.strftime(...) )`,所以我选择了那个。 (2认同)