【问题标题】:pandas to_datetime from two text columns来自两个文本列的熊猫 to_datetime
【发布时间】:2019-06-21 15:13:23
【问题描述】:

我有以下格式的时间序列。

将“日期”和“时间”列转换/组合成 pandas 日期时间格式的最简单方法是什么?

我知道它应该是 pandas.to_datetime(date...)。但我想不出组合它们的格式。

  ccy      date  time    open    high     low   close
0  EURUSD  20190211   100  1.1318  1.1319  1.1317  1.1319
1  EURUSD  20190211   200  1.1320  1.1322  1.1319  1.1319
2  EURUSD  20190211   300  1.1318  1.1319  1.1318  1.1319
3  EURUSD  20190211   400  1.1319  1.1319  1.1318  1.1318
4  EURUSD  20190211   500  1.1318  1.1318  1.1318  1.1318

【问题讨论】:

  • 顺便说一句,我们如何阅读您的time 专栏。 100 凌晨 1 点吗?

标签: python pandas datetime


【解决方案1】:

这是您进行转换的方式,但您需要确保时间列有意义 - 当显示 3 位时间时,您的表格现在不明确。另外,请确保您的日期和时间列是字符串,否则将它们转换为字符串,因为明智地加入它们将需要它。

import pandas as pd
df=pd.DataFrame({'date':['20190211','20190211'],'time':['0100','0200']})
pd.to_datetime(df['date']  + df['time'], format='%Y%d%m%H%M')

【讨论】:

    【解决方案2】:

    似乎datetime 当前存储为整数。因此,您可能需要将它们转换为字符串才能执行字符串切片。

    def convert_to_datetime(date, time):
        datestr = str(date)
        timestr = str(time)
        result = datestr[0:4] + "/" + datestr[4:6] + "/" + datestr[6:]
        result = result + " " + timestr[0:-2] + ":"+ timestr[-2:]
        return pd.to_datetime(result)
    
    df["datetime"] = df.apply(lambda x: convert_to_datetime(x["date"], x["time"], axis=1)
    
    

    【讨论】:

      【解决方案3】:

      两种方法:

      第一种方法:(不带熊猫)

      # convert date
      data['ddate']= [str(dt)[:4]+'-'+str(dt)[4:6]+'-'+str(dt)[-2:] for dt in 
      # convert time 
      data['dtime']= [str(dt)[:-2]+':'+str(dt)[-2:] for dt in data['dtime']]
      # join 
      data['datetime'] = data['ddate'] + ' ' + data['dtime'] # space or whatever you want
      # delete unneeded columns 
      del data['ddate'], data['dtime']
      

      第二种方法:(使用pandas)

      data['datetime']= pd.to_datetime([str(dt)+str(tm) for dt,tm in data[['date','time']].values],format='%Y%d%m%H%M')
      

      【讨论】:

        猜你喜欢
        • 2018-11-12
        • 2020-11-17
        • 2018-06-05
        • 2019-07-04
        • 1970-01-01
        • 1970-01-01
        • 2019-12-13
        • 1970-01-01
        • 2019-03-29
        相关资源
        最近更新 更多