【问题标题】:Calculate Date Columns in Datframe计算数据框中的日期列
【发布时间】:2020-05-13 16:06:34
【问题描述】:

我尝试计算这些列。我需要两个新列,

  • 一个名为“开始时间”=日期+时间
  • 一个名为“Endtime”的 = 日期 + 时间 + 时间增量

我需要它们用于 python 中的甘特图,问题在于,那个时间可能会出现多次。任何想法如何解决这个问题?

我从 Dataframe 中将它们变红并在此处出现此错误

unsupported operand type(s) for +: 'datetime.date' and 'datetime.time'

【问题讨论】:

  • 只接受一个答案,不能同时接受两个

标签: python pandas dataframe datetime timestamp


【解决方案1】:

首先将dates和times通过Series.astype转换为字符串,然后使用to_datetime,第二列使用to_timedelta

df = pd.DataFrame({'Date': pd.to_datetime(['06.12.2019','06.12.2019']).date,
                   'Time': pd.to_datetime(['17:20:10','17:20:31']).time,
                   'TimeDelta':['00:00:21','14:31:09']})

df['Starttime'] = pd.to_datetime(df['Date'].astype(str) + ' ' + df['Time'].astype(str))
df['Endtime'] = df['Starttime'] + pd.to_timedelta(df['TimeDelta'])
print (df)
         Date      Time TimeDelta           Starttime             Endtime
0  2019-06-12  17:20:10  00:00:21 2019-06-12 17:20:10 2019-06-12 17:20:31
1  2019-06-12  17:20:31  14:31:09 2019-06-12 17:20:31 2019-06-13 07:51:40

【讨论】:

    【解决方案2】:

    尝试使用pd.to_datetimepd.to_timedelta

    df['Starttime'] = pd.to_datetime(df['Date'].map(str) + ' ' + df['Time'].map(str))
    df['Endtime'] = df['Starttime'] + pd.to_timedelta(df['TimeDelta'])
    

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 2022-12-13
      • 2014-12-07
      • 1970-01-01
      • 2016-12-16
      • 2019-04-10
      • 2022-11-27
      • 2017-05-16
      相关资源
      最近更新 更多