【问题标题】:Difference between today and a date python今天和日期python之间的区别
【发布时间】:2019-10-24 15:12:49
【问题描述】:

我有一个 pandas 数据框,其中的一列采用这种格式:

0         1983-02-07
1         1989-10-07
2         1969-10-28
3         1967-02-25
4         1982-07-21
             ...    
328970    1995-06-09
328971    1999-01-11
328972    1962-04-01
328973    1996-05-19
328974    1994-03-03
Name: Nascita - Data, Length: 328975, dtype: object

我想做的事情是这样的

df['datecolumn']-datetime.now()

【问题讨论】:

  • 好的,是什么阻止你这样做?
  • 它们的格式不同,我不知道如何将第一个转换为日期时间格式
  • 查看我的回答df["Date"] = pd.to_datetime(df['Date'])中的行

标签: python time arithmetic-expressions


【解决方案1】:

这样的事情应该可以工作:

import pandas as pd
from datetime import datetime
data = ["1983-02-07", 
"1989-10-07", 
"1969-10-28", 
"1967-02-25", 
"1982-07-21"]

df = pd.DataFrame(data, columns = ["Date"])
print(df)
df["Date"] = pd.to_datetime(df['Date'])
#df["Difference"] = df["Date"].apply(lambda x: x-datetime.now())

# Alternate code
from dateutil.relativedelta import relativedelta
df["Difference"] = df["Date"].apply(lambda x: relativedelta(datetime.now(), x).years)
print(df)

输出:

Date
0  1983-02-07
1  1989-10-07
2  1969-10-28
3  1967-02-25
4  1982-07-21

Date                   Difference
0 1983-02-07 -13409 days +06:41:00.418879
1 1989-10-07 -10975 days +06:41:00.418728
2 1969-10-28 -18259 days +06:41:00.418671
3 1967-02-25 -19235 days +06:41:00.418630
4 1982-07-21 -13610 days +06:41:00.418591

输出替代代码:

Date
0  1983-02-07
1  1989-10-07
2  1969-10-28
3  1967-02-25
4  1982-07-21

Date  Difference
0 1983-02-07          36
1 1989-10-07          30
2 1969-10-28          49
3 1967-02-25          52
4 1982-07-21          37

【讨论】:

  • 有可能在几年内就有差异吗?
  • 查看this链接,看看它是否能帮助您更好地操作日期时间对象
  • 查看上面的更改。关键在df["Difference"] = df["Date"].apply(lambda x: <some function using x>)
  • NP。如果有帮助,请选择答案和/或投票。它有助于网站维护其管理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-12
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
相关资源
最近更新 更多