python - 从分钟值在熊猫数据框中添加日期时间列
问题描述
我有一个数据框,其中的time
列的0-1339
分钟数表示一天中的 1440 分钟。我想像这样添加一个datetime
代表当天的列,2021-3-21
包括 hh amd mm1980-03-01 11:00
我尝试了以下代码
from datetime import datetime, timedelta
date = datetime.date(2021, 3, 21)
days = date - datetime.date(1900, 1, 1)
df['datetime'] = pd.to_datetime(df['time'],format='%H:%M:%S:%f') + pd.to_timedelta(days, unit='d')
但是错误似乎descriptor 'date' requires a 'datetime.datetime' object but received a 'int'
有没有其他方法可以解决此问题或修复此代码?请帮助解决这个问题。
>>df
time
0
1
2
3
..
1339
我想将此分钟转换为特定格式1980-03-01 11:00
,我将使用日期2021-3-21
并将分钟转换为hhmm
部分。数据框看起来像。
>df
datetime time
2021-3-21 00:00 0
2021-3-21 00:01 1
2021-3-21 00:02 2
...
如何以这种方式格式化我的数据?
解决方案
让我们尝试使用pd.to_timedelta
以分钟为单位的持续时间,time
然后添加TimeStamp
:
df['datetime'] = (
pd.Timestamp('2021-3-21') + pd.to_timedelta(df['time'], unit='m')
)
df.head()
:
time datetime
0 0 2021-03-21 00:00:00
1 1 2021-03-21 00:01:00
2 2 2021-03-21 00:02:00
3 3 2021-03-21 00:03:00
4 4 2021-03-21 00:04:00
带有示例数据的完整工作示例:
import numpy as np
import pandas as pd
df = pd.DataFrame({'time': np.arange(0, 1440)})
df['datetime'] = (
pd.Timestamp('2021-3-21') + pd.to_timedelta(df['time'], unit='m')
)
print(df)
推荐阅读
- javascript - 未从范围获取值,出现错误:无法设置未定义的属性“值”
- javascript - 如何在 React Native 中渲染 BULLET 字符?
- spring-boot - 如何使用 newrelic 为 Spring Boot 应用程序进行分布式跟踪
- javascript - 如何使对话流机器人执行松弛事件,例如重命名频道
- c++ - 如何使用两个发送函数发送 GET 请求?
- reactjs - 带有下一个图像和下一个字体的便携式构建和 CDN
- java - 使用 REST API 将图像文件上传到 Google Drive 时出错
- java - 保存 java 文件后 Eclipse 删除外部导入
- typescript - 顺序方式的链式承诺
- c - 使用 SIM800C 发送 post 请求,设置 URL(short) 参数时得到“ERROR”