在熊猫中添加日期

新手上路,请多包涵

我有一个包含 2 列的数据框,一列是日期,另一列是浮点数。我想添加那些 2 以获得以下内容:

    Index           Date           Days           NewDate
     0           20-04-2016        5           25-04-2016
     1           16-03-2015       3.7          20-03-2015

如您所见,如果有小数,它会被转换为 int,如 3.1–> 4(天)。我有一些奇怪的问题,所以我很感激任何帮助。谢谢 !

原文由 datascana 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 382
2 个回答

首先,确保 Date 列是一个日期时间对象:

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

然后,我们可以通过将 Days 列转换为 int 并将其转换为 pandas Timedelta:

 temp = df['Days'].apply(np.ceil).apply(lambda x: pd.Timedelta(x, unit='D'))

可以添加日期时间对象和时间增量:

 df['NewDate'] = df['Date'] + temp

原文由 languitar 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以将天数列转换为 timedelta 并将其添加到 Date 列:

 import pandas as pd

df['NewDate'] = pd.to_datetime(df.Date) + pd.to_timedelta(pd.np.ceil(df.Days), unit="D")
df

在此处输入图像描述

原文由 Psidom 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题