如何更改日期时间格式?

时间:2017-10-16 12:06:09

标签: python python-2.7 pandas datetime

我的pandas DataFrame df中有以下格式给出的时间戳:2015-03-09 11:09:05.0。 如何将它们转换为此格式2015-03-09T11:09:05.0(即由T分隔)?

df["dt"] = df["dt"].apply(lambda x: ???)

2 个答案:

答案 0 :(得分:2)

你快到了。您正在寻找isoformat。 https://docs.python.org/3.6/library/datetime.html#datetime.date.isoformat

import pandas as pd
df = pd.DataFrame({'dt':pd.to_datetime(['2015-03-09 11:09:05.0'])})

df["dt"] = df["dt"].apply(lambda x: x.isoformat())

df

返回

            dt
0  2015-03-09T11:09:05

您可以通过向isoformat()插入参数来更改T(默认值),例如df["dt"] = df["dt"].apply(lambda x: x.isoformat(" "))

答案 1 :(得分:1)

使用strftime自定义格式:

df = pd.DataFrame({'dt':pd.to_datetime(['2015-03-09 11:09:05.0'])})
print (df)

df["dt"] = df["dt"].dt.strftime('%Y-%m-%dT%H:%M:%S.%f')
print (df)
                           dt
0  2015-03-09T11:09:05.000000

或转换为string,按whitespace拆分并按T加入:

df["dt"] = df["dt"].astype(str).str.split().str.join('T')