python - Pandas:距某个日期还剩多少天

标签 python pandas

我希望看到一个带有天数的int。但是,我看到了 NaN、两行和 float64。你能告诉我我在这里做错了什么吗?

    >>> event_start_date = event_data['start_date'].loc[event_data['event_id'] == event_id]
    >>> last_order_date = event_orders['ds'].tail(1)
    >>> print(last_order_date)
    1493   2019-05-05 06:28:09.699094
    Name: ds, dtype: datetime64[ns]
    >>> print(event_start_date)
    0   2019-10-04 02:00:00
    Name: start_date, dtype: datetime64[ns]
    >>> days_to_event = (event_start_date - last_order_date).dt.days
    >>> print(days_to_event)
    0      NaN
    1061   NaN
    dtype: float64

最佳答案

问题是不同的索引值,如果减去 pandas 尝试对齐索引,并且因为不匹配而创建缺失值。

解决方案是创建相同的索引值,例如通过 Series.reset_indexdrop=True:

days_to_event = (event_start_date.reset_index(drop=True) - 
                 last_order_date.reset_index(drop=True)).dt.days
<小时/>

或者使用标量 - 按位置选择第一个值 Series.iat :

last_order_date = event_orders['ds'].tail(1)

更改为:

last_order_date = event_orders['ds'].iat[0]
event_start_date = event_start_date.iat[0]

days_to_event = (event_start_date - last_order_date).days

另一个想法是组合 - 用标量减去一项 Series - 输出是一项 Series:

last_order_date = event_orders['ds'].iat[0]
days_to_event = (event_start_date - last_order_date).dt.days

关于python - Pandas:距某个日期还剩多少天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57123972/

相关文章:

python - 如何将数据框转换为 great_expectations 数据集?

python - 如何找到每行与列数的最大值并打印它们?

python - 添加具有部分重叠索引的 DataFrame

python - 仅当它们在附近时才从点列表创建多边形

python - 将一个时间序列插入到自定义时间序列中

python beautifulsoup 提取文本

python - 如何在 Python 中编码/解码百分比编码 (URL) 字符串?

python - df.iloc 未在 For 循环中赋值? ( Pandas )

python - 在 pandas DataFrame 上调用 dropna() 后是否应该更新多索引级别?

python - Flask 循环依赖