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())

862209505-59cb38b0019a3

阅读 5.4k
1 个回答

df = data.fillna(0)使缺失的时间序列返回0,导致Strptime()报错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进