pandas datetime Series difference没有按预期工作



下面是一个最小的工作示例

import pandas as pd
df = pd.DataFrame({"datetime": 
[
"2021-09-01 00:00:01",
"2021-09-01 00:00:02",
"2021-09-01 00:00:03",
"2021-09-01 00:00:04",
"2021-09-01 00:00:05",
"2021-09-01 00:00:06",
"2021-09-01 00:00:07",
"2021-09-01 00:00:08",
"2021-09-01 00:00:09",
"2021-09-01 00:00:10",
]}
)
df["datetime"] = pd.to_datetime(df["datetime"])
delta = df["datetime"][1::] - df["datetime"][0:-1]
print(delta)

我得到

0      NaT
1   0 days
2   0 days
3   0 days
4   0 days
5   0 days
6   0 days
7   0 days
8   0 days
9      NaT
Name: datetime, dtype: timedelta64[ns]

但是我认为这将是一个包含Timedelta('0 days 00:00:01')元素的数组,实际上如果我做df["datetime"][1] - df["datetime"][0],那就是我得到的。另一方面,df["datetime"][1:2] - df["datetime"][0:1]产生

0   NaT
1   NaT
Name: datetime, dtype: timedelta64[ns]

我在这里错过了什么?

在您的示例中考虑了索引。所以用相同的时间减去它们,结果是0天。因为索引0和9在两个系列中都不存在。

df["datetime"][1::] - df["datetime"][0:-1].values

最新更新