strptime()报错
用python处理CSV文件里的数据。数据大概如下图所示。需要每隔15分钟把数据加到一起,比如把2017-03-11 1:00-1:15的数据加到1:15。根据大神写的code,略微修改运行后,python总是报错如下:
dt = datetime.strptime(x, '%Y-%m-%d %H:%M:%S.%f')
TypeError: strptime() argument 1 must be str, not int
实在找不出原因,还请大家提点一下。
Code 如下:
import pandas as pd
from datetime import datetime, timedelta
data =pd.read_csv('C:/Users/admin/Desktop/test.csv')
def time_format(x):
dt = datetime.strptime(x, '%Y-%m-%d %H:%M:%S.%f')
mod = (dt.minute // 15)
if mod == 0:
if dt.minute == 0:
return datetime(dt.year, dt.month, dt.day, dt.hour, dt.minute,
dt.second, dt.microsecond)
else:
minute = mod * 15
return datetime(dt.year, dt.month, dt.day, dt.hour, minute,
dt.second, dt.microsecond) + timedelta(minutes=15)
else:
minute = mod * 15
return datetime(dt.year, dt.month, dt.day, dt.hour, minute,
dt.second, dt.microsecond) + timedelta(minutes=15)
df = data.fillna(0)
df['DateTimeKey'] = df['DateTimeKey'].apply(time_format)
print(df.groupby('DateTimeKey', as_index=False).sum())
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
df = data.fillna(0)使缺失的时间序列返回0,导致Strptime()报错。