Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将数据帧转换为日期时间格式_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 将数据帧转换为日期时间格式

Python 3.x 将数据帧转换为日期时间格式,python-3.x,pandas,Python 3.x,Pandas,我有一个包含以下列的数据框: df1: 我想将Hr_y、Min_y、Sec_y、Hr_x、Min_x、Sec_x转换为pandas datetime格式 语法是什么?您可以按小时、分钟s和秒s创建,并添加到日期时间s: df['DOU'] = pd.to_datetime(df['DOU']) a = pd.to_timedelta(df.filter(regex='y$').astype(str).apply(':'.join, 1)) b = pd.to_timedelta(df.filt

我有一个包含以下列的数据框:

df1:

我想将Hr_y、Min_y、Sec_y、Hr_x、Min_x、Sec_x转换为pandas datetime格式

语法是什么?

您可以按
小时
分钟
s和
s创建,并添加到
日期时间
s:

df['DOU'] = pd.to_datetime(df['DOU'])

a = pd.to_timedelta(df.filter(regex='y$').astype(str).apply(':'.join, 1))
b = pd.to_timedelta(df.filter(regex='x$').astype(str).apply(':'.join, 1))

df['x'] = df['DOU'] + a
df['y'] = df['DOU'] + b
print (df)
         DOU  Hr_y  Min_y  Sec_y  Hr_x  Min_x  Sec_x                   x  \
0 2017-09-02    12      5     16    16      5     16 2017-09-02 12:05:16   
1 2017-09-02    14     21     45    21      6     30 2017-09-02 14:21:45   

                    y  
0 2017-09-02 16:05:16  
1 2017-09-02 21:06:30  
另一种解决方案是将所有列连接在一起,然后转换为日期时间:

df['x'] = pd.to_datetime(df['DOU'].astype(str) + 
                        df['Hr_x'].astype(str) + 
                        df['Min_x'].astype(str) + 
                       df['Sec_x'].astype(str), format='%Y-%m-%d%H%M%S')

df['y'] = pd.to_datetime(df['DOU'].astype(str) + 
                        df['Hr_y'].astype(str) + 
                        df['Min_y'].astype(str) + 
                       df['Sec_y'].astype(str), format='%Y-%m-%d%H%M%S')
print (df)
          DOU  Hr_y  Min_y  Sec_y  Hr_x  Min_x  Sec_x                   x  \
0  2017-09-02    12      5     16    16      5     16 2017-09-02 16:51:06   
1  2017-09-02    14     21     45    21      6     30 2017-09-02 21:06:30   

                    y  
0 2017-09-02 12:51:06  
1 2017-09-02 14:21:45  
df['x'] = pd.to_datetime(df['DOU'].astype(str) + 
                        df['Hr_x'].astype(str) + 
                        df['Min_x'].astype(str) + 
                       df['Sec_x'].astype(str), format='%Y-%m-%d%H%M%S')

df['y'] = pd.to_datetime(df['DOU'].astype(str) + 
                        df['Hr_y'].astype(str) + 
                        df['Min_y'].astype(str) + 
                       df['Sec_y'].astype(str), format='%Y-%m-%d%H%M%S')
print (df)
          DOU  Hr_y  Min_y  Sec_y  Hr_x  Min_x  Sec_x                   x  \
0  2017-09-02    12      5     16    16      5     16 2017-09-02 16:51:06   
1  2017-09-02    14     21     45    21      6     30 2017-09-02 21:06:30   

                    y  
0 2017-09-02 12:51:06  
1 2017-09-02 14:21:45