gpt4 book ai didi

python - pandas 两个 DatetimeIndex 之间的元素差异

转载 作者:行者123 更新时间:2023-12-01 03:40:47 25 4
gpt4 key购买 nike

有没有一种pandas惯用的方法来查找两个pandas DatetimeIndex之间的天数差异?

>>> d1 = pd.to_datetime(['2000-01-01', '2000-01-02'])
>>> d2 = pd.to_datetime(['2001-01-01', '2001-01-02'])

- 运算符设置差异,即日期在 d1 中但不在 d2 中。

>>> d1-d2
DatetimeIndex(['2000-01-01', '2000-01-02'], dtype='datetime64[ns]', freq=None)

IMO,这与 numpy 和纯 python 的行为不一致。甚至 Pandas 本身也没有

>>> d2[0]-d1[0]
Timedelta('366 days 00:00:00')

这就是我想要的,但是丑陋。

>>> [d.days for d in d2.to_pydatetime() - d1.to_pydatetime()]
[366, 366]

最佳答案

您直接使用np.subtract:

np.subtract(d2, d1)

这将为您提供一个 TimedeltaIndex 作为结果:

TimedeltaIndex(['366 days', '366 days'], dtype='timedelta64[ns]', freq=None)

然后,如果需要,可以使用 .days

另一种可能的方式:

pd.to_timedelta(d2.values - d1.values).days

这会给你留下:

array([366, 366])

关于python - pandas 两个 DatetimeIndex 之间的元素差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com