将时间列转换为UTC时间,无d

2024-09-27 04:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一行数据(以熊猫为单位),有一天的时间:

0        8:00 AM
1       11:00 AM
2        8:00 AM
3        4:00 PM
4        9:00 AM
5               
6        9:00 AM
7               
8        9:00 AM
9               
10       9:00 AM
11              
12       9:00 AM
13              
14       8:00 AM
15      11:00 AM
16       8:00 AM
17      11:00 AM
18       9:00 AM
19              
20       9:00 AM
21              
22       9:00 AM
23              
24       9:00 AM
25              
26       9:00 AM
27              
28       9:00 AM

我想把它转换成类似的东西:

0      2015-11-11 08:00:00
1      2015-11-11 11:00:00
2      2015-11-11 08:00:00
3      2015-11-11 16:00:00
4      2015-11-11 09:00:00
5                      NaT
6      2015-11-11 09:00:00
7                      NaT
8      2015-11-11 09:00:00
9                      NaT
10     2015-11-11 09:00:00
11                     NaT
12     2015-11-11 09:00:00
13                     NaT
14     2015-11-11 08:00:00
15     2015-11-11 11:00:00
16     2015-11-11 08:00:00
17     2015-11-11 11:00:00
18     2015-11-11 09:00:00
19                     NaT
20     2015-11-11 09:00:00
21                     NaT
22     2015-11-11 09:00:00
23                     NaT
24     2015-11-11 09:00:00
25                     NaT
26     2015-11-11 09:00:00
27                     NaT
28     2015-11-11 09:00:00
29                     NaT

但没有加上日期。然后我尝试将我的pandas列合并到一个列中,以便能够遍历。我曾尝试将它们添加为astype(str),但在一个应用程序中没有成功pd.合并. 你知道吗

关于如何使用pandas中的tou datetime函数,同时将其保持为UTC时间,您有什么想法吗?你知道吗


Tags: 数据函数应用程序pandasdatetime时间单位am
1条回答
网友
1楼 · 发布于 2024-09-27 04:24:18

考虑到以下输入数据:

data = ['8:00 AM',
       '11:00 AM',
       '8:00 AM',
       '4:00 PM',
       '9:00 AM',
       '',       
       '9:00 AM',
       '',              
       '9:00 AM']

代码:

import pandas as pd
x = pd.to_datetime(data).time

pd.Series(x)

输出:

0    08:00:00
1    11:00:00
2    08:00:00
3    16:00:00
4    09:00:00
5         NaN
6    09:00:00
7         NaN
8    09:00:00
dtype: object

如果在另一个系列中有其他数据,则要加入到同一数据帧中:

x = pd.Series(x)    
y = pd.Series(range(9))
pd.concat([x, y], axis=1)

    0           1
 0  08:00:00    0
 1  11:00:00    1
 2  08:00:00    2

最后,如果希望将列合并为字符串,请尝试以下操作:

z = pd.concat([x, y], axis=1)
z[0].astype(str) + ' foo ' + z[1].astype(str)

0    08:00:00 foo 0
1    11:00:00 foo 1
2    08:00:00 foo 2
3    16:00:00 foo 3
4    09:00:00 foo 4
5         nan foo 5
6    09:00:00 foo 6
7         nan foo 7
8    09:00:00 foo 8
dtype: object

相关问题 更多 >

    热门问题