如何解决从分钟值在熊猫数据框中添加日期时间列
我有一个数据框,其中有 time
列的分钟数从 0-1339
开始,表示一天中的 1440 分钟。我想添加一列 datetime
代表天 2021-3-21
包括 hh amd mm 像这样 1980-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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。