下面是一个最小的工作示例
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