2017-10-16 144 views
1

我在我的熊猫DataFrame df2015-03-09 11:09:05.0中给出了以下格式的时间戳。 如何将它们转换为2015-03-09T11:09:05.0(即用T分开)?如何更改日期时间格式?

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

我没有看到差异... – jezrael

+0

@jezrael:对不起,我更新了。 – Dinosaurius

回答

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 

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

+1

真的很好,我不知道它;) – jezrael

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')