我正在设置新列作为Python中的日差(在Jupyter笔记本上)。
我进行了列日期和当前日期之间的日期差。此外,我还执行了日期列和通过当前日期新创建的日期之间的日期差(使用timedelta函数的“当前日期-/ +输入日期”)。
但是,每当我使用同一列和不同列的max()时,日差列都具有NaN值。这对我来说没有意义,也许我错过了日期类型。当我检查所有类型时,它们似乎都是datetime64(我已经将其转换为datetime64)。
我认为原因是日期不够长。但是,它发生在任何特定日期,例如max(datecolumn)+ timedelta(days = i)。
t = data_signups [[“” date_joined“]]。max()
date_joined 2019-07-18 07:47:24.963450 dtype:datetime64 [ns]
t = t + timedelta(30)
date_joined 2019-08-17 07:47:24.963450 dtype:datetime64 [ns]
data_signups ['joined_to_today'] =(t-data_signups ['date_joined'])。dt.days
data_signups.head(2)
缩短...
但是它可以像下面这样处理“当日任务”。
Currentdate = datetime.datetime.now() 打印(当前日期) 2019-09-01 17:05:48.934362
before_days = int(input(“输入今天进行分析的天数”))
30
完成
last_day_for_analysis =当前日期-timedelta(days = before_days)
打印(last_day_for_analysis)
2019-08-02 17:05:48.934362
data_signups ['joined_to_today'] =(last_day_for_analysis-data_signups ['date_joined'])。dt.days
data_signups.head(2)
缩短...
我希望有日期类型问题。但是,我都不知道,因为它们都是datetime64。列中没有NaN值。
感谢您的帮助。我是新手,我每天都在努力学习。
答案 0 :(得分:0)
尽管我忙于这个问题2天,但现在我意识到自己犯了一个大错误。不好意思
不能将最大值作为日期的原因如下。
现有的一个:t = data_signups [[“” date_joined“]]。max()
必须为一:t = data_signups [“ date_joined”]。max()
因此它可以按以下方式使用。
data_signups ['joined_to_today'] =(data_signups ['date_joined']。max()-data_signups ['date_joined'])。dt.days data_signups.head(3)
将没有两个括号。如此愚蠢的错误。谢谢。