处理python中的timestamp属性?

neh*_*eha -1 python datetime pandas

我有一个数据帧'df',其中一个属性是日期时间.此属性中的值如下所示:

>>df['TR_DATE']
0         2015-03-18 19:59:58 
1         2015-03-19 13:23:37
2         2015-03-19 13:27:04
3         2015-03-19 14:23:53
4         2015-03-19 15:01:50
5         2015-03-19 17:45:42
6         2015-03-19 17:49:58
Run Code Online (Sandbox Code Playgroud)

我想分别将此属性中的值拆分为日期和时间.所以我将有两个新列df ['DATE']和df ['TIME']包含值:

>>df['DATE']
         2015-03-18  
         2015-03-19 
         2015-03-19 
         2015-03-19
         2015-03-19 
         2015-03-19 
         2015-03-19 
>>df['Time']
         19:59:58 
         13:23:37
         13:27:04
         14:23:53
         15:01:50
         17:45:42
         17:49:58
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

EdC*_*ica 5

以下应该有效:

In[229]:
df['DATE'] = df['TR_DATE'].dt.date
df['TIME'] = df['TR_DATE'].dt.time
df

Out[229]: 
              TR_DATE        DATE      TIME
0 2015-03-18 19:59:58  2015-03-18  19:59:58
1 2015-03-19 13:23:37  2015-03-19  13:23:37
2 2015-03-19 13:27:04  2015-03-19  13:27:04
3 2015-03-19 14:23:53  2015-03-19  14:23:53
4 2015-03-19 15:01:50  2015-03-19  15:01:50
5 2015-03-19 17:45:42  2015-03-19  17:45:42
6 2015-03-19 17:49:58  2015-03-19  17:49:58
Run Code Online (Sandbox Code Playgroud)

datetime列具有.dt返回dt.datedt.time组件的访问器.

请注意,此返回datetime.datedatetime.time不支持向量化操作的对象.

这假设dtype已经是datetime,如果没有,那么你需要使用to_datetime:

df['TR_DATE'] = pd.to_datetime(df['TR_DATE']
Run Code Online (Sandbox Code Playgroud)

在上述电话之前

如果您只想要str陈述,可以致电dt.strftime:

In[231]:
df['DATE'] = df['TR_DATE'].dt.strftime('%Y-%m-%d')
df['TIME'] = df['TR_DATE'].dt.strftime('%H:%M:%S')
df

Out[231]: 
              TR_DATE        DATE      TIME
0 2015-03-18 19:59:58  2015-03-18  19:59:58
1 2015-03-19 13:23:37  2015-03-19  13:23:37
2 2015-03-19 13:27:04  2015-03-19  13:27:04
3 2015-03-19 14:23:53  2015-03-19  14:23:53
4 2015-03-19 15:01:50  2015-03-19  15:01:50
5 2015-03-19 17:45:42  2015-03-19  17:45:42
6 2015-03-19 17:49:58  2015-03-19  17:49:58
Run Code Online (Sandbox Code Playgroud)

同样,因为这些是字符串,您无法执行算术运算