gpt4 book ai didi

python - 在python中添加分钟到时间戳

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

我有一个包含 2000 行的 DataFrame df。前几行如下所示:
+--------------+----------+--+
|时间戳|持续时间 | |
+--------------+----------+--+
| 2018 年 1 月 5 日 0:23 | 22 | 22 |
| 2018 年 1 月 5 日 3:34 | 32 | 32 |
| 1/5/18 23:48 | 24 | |
| 18 年 1 月 6 日 2:26 | 15 | 15 |
| 2018 年 1 月 6 日 14:13 | 23 | 23 |
+--------------+----------+--+

我想根据以下条件创建一个新列 C:如果持续时间 >= 20:则在时间戳中添加 20 分钟。如果持续时间 < 20:则为 null。

因此,鉴于上述信息和数据,新表应如下所示:
+--------------+----------+--------------+--+--+
|时间戳|持续时间 | C | | |
+--------------+----------+--------------+--+--+
| 2018 年 1 月 5 日 0:23 | 22 | 22 2018 年 1 月 5 日 0:43 | | |
| 2018 年 1 月 5 日 3:34 | 32 | 32 2018 年 1 月 5 日 3:54 | | |
| 1/5/18 23:48 | 24 | 2018 年 1 月 6 日 0:08 | | |
| 18 年 1 月 6 日 2:26 | 15 | 15空 | | |
| 2018 年 1 月 6 日 14:13 | 23 | 23 2018 年 1 月 6 日 14:33 | | |
+--------------+----------+--------------+--+--+

关于如何做到这一点有什么想法吗?

最佳答案

一点点日期时间算术就可以做到这一点。

df['C'] = pd.to_datetime(df.Timestamp) + pd.to_timedelta(
np.where(df.Duration > 20, 20, np.nan), unit='m')

df['C']

0 2018-01-05 00:43:00
1 2018-01-05 03:54:00
2 2018-01-06 00:08:00
3 NaT
4 2018-01-06 14:33:00
Name: C, dtype: datetime64[ns]

请随意根据需要格式化结果:

df['C'] = df['C'].dt.strftime('%m/%d/%y %H:%M')

注意:如果您的日期从第一天开始,请将时间戳转换代码更改为

pd.to_datetime(df.Timestamp, dayfirst=True, errors='coerce')

因此,日期会被适本地处理为先有日期。

关于python - 在python中添加分钟到时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50922533/

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