Pandas- 将默认日期时间更改为其他时间

Pandas- Change default datetime to another time

我有一个包含两个 datetime 列的数据框。我正在对这两个 datetime 列进行区分,以找出它们之间的天数。问题是两者的时间都从 06:00:00 开始,所以当实际的一天结束时,差异保持不变。

这是数据框

machineID   datetime_tel    comp1     datetime_maint    sincelastComp1
30       2021-01-01 23:00:00    1   2020-07-31 06:00:00 154
30       2021-01-02 00:00:00    1   2020-07-31 06:00:00 154
30       2021-01-02 01:00:00    1   2020-07-31 06:00:00 154
30       2021-01-02 02:00:00    1   2020-07-31 06:00:00 154
30       2021-01-02 03:00:00    1   2020-07-31 06:00:00 154
30       2021-01-02 04:00:00    1   2020-07-31 06:00:00 154
30       2021-01-02 05:00:00    1   2020-07-31 06:00:00 154
30       2021-01-02 06:00:00    1   2020-07-31 06:00:00 155
30       2021-01-02 07:00:00    1   2020-07-31 06:00:00 155

在这里你可以看到当我们将日期设置为 2021-01-02 将时间设置为 00:00:00 时,sincelastComp1 中没有增量(理想​​情况下它应该随着日期增加而增加1).它仅在时间为 06:00:00.

时增加

我希望在日期更改时发生增量。

如果我没理解错的话,您想计算日期之间的差异而不是时间戳之间的差异:

df['sincelastComp1'] = (df['datetime_tel'].apply(pd.Timestamp).dt.date -
                        df['datetime_maint'].apply(pd.Timestamp).dt.date).dt.days

输出:

    machineID         datetime_tel  comp1       datetime_maint  sincelastComp1
0         30  2021-01-01 23:00:00      1  2020-07-31 06:00:00             154
1         30  2021-01-02 00:00:00      1  2020-07-31 06:00:00             155
2         30  2021-01-02 01:00:00      1  2020-07-31 06:00:00             155
3         30  2021-01-02 02:00:00      1  2020-07-31 06:00:00             155
4         30  2021-01-02 03:00:00      1  2020-07-31 06:00:00             155
5         30  2021-01-02 04:00:00      1  2020-07-31 06:00:00             155
6         30  2021-01-02 05:00:00      1  2020-07-31 06:00:00             155
7         30  2021-01-02 06:00:00      1  2020-07-31 06:00:00             155
8         30  2021-01-02 07:00:00      1  2020-07-31 06:00:00             155