【问题标题】:subtract current time from pandas date column从熊猫日期列中减去当前时间
【发布时间】:2022-01-31 08:57:09
【问题描述】:

我有一个类似

的熊猫数据框
x = pd.DataFrame(['05/06/2015 00:00', '22/06/2015 00:00', None], columns=['myDate'])

我想找出myDate 列中的日期与当前日期之间的天数。我怎样才能做到这一点?我尝试了以下但没有太大成功

pd.to_datetime(x['myDate']) - pd.datetime.now().date()

【问题讨论】:

  • 你能发布pandas,numpy版本吗,也请尝试我的最后一个sn-p它对我来说很好,当你说不起作用时,请显示任何错误和输出/结果不工作

标签: python pandas


【解决方案1】:

以下对我有用:

In [9]:

df = pd.DataFrame(['05/06/2015 00:00', '22/06/2015 00:00', None], columns=['myDate'])
df['myDate']= pd.to_datetime(df['myDate'], errors='coerce')
df
Out[9]:
      myDate
0 2015-05-06
1 2015-06-22
2        NaT
In [10]:

df['diff'] = df['myDate'] - pd.Timestamp.now().normalize()
df
Out[10]:
      myDate    diff
0 2015-05-06  9 days
1 2015-06-22 56 days
2        NaT     NaT

你的版本也是这样:

In [13]:

df['diff'] = df['myDate'] - pd.Timestamp.now().normalize()
df
Out[13]:
      myDate    diff
0 2015-05-06  9 days
1 2015-06-22 56 days
2        NaT     NaT

更紧凑的版本:

In [15]:

df = pd.DataFrame(['05/06/2015 00:00', '22/06/2015 00:00', None], columns=['myDate'])
df['diff']= pd.to_datetime(df['myDate'], errors='coerce') - pd.Timestamp.now().normalize()
df
Out[15]:
             myDate    diff
0  05/06/2015 00:00  9 days
1  22/06/2015 00:00 56 days
2              None     NaT

【讨论】:

  • 谢谢 - 强制关键字很有用:)
  • 强制关键字不存在
  • 刚刚更新了上面的语法以获取最新的pandas 版本
猜你喜欢
  • 2019-05-20
  • 2015-09-19
  • 2018-11-15
  • 2017-11-19
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
相关资源
最近更新 更多