'int' 对象不能使用 panda python 进行迭代

数据挖掘 Python 熊猫
2022-02-16 02:22:59

在这里,我想计算从 csv 文件导入的时间列中逐行之间的时间间隔。我的开始时间是早上 6 点,我的结束时间是第二天早上 6 点 在此时间段之间如何找到时间间隔。谁能帮我解决这个问题?在这里,我上传了我的代码和 csv 文件。

def time_diff(start, end):
start.append(pd.to_datetime(data['time'][0],formt = '%H:%M:%S').time())
end.append(pd.to_datetime(len(data['time']), format='%H:%M:%S').time())
if isinstance(start, datetime_time): # convert to datetime
    assert isinstance(end, datetime_time)
    start, end = [datetime.combine(datetime.min,i) for t in [start, end]]
if start <= end: 
    return end - start
else: # end < start 
    end += timedelta(1) # +day
    assert end > start
    return end - start
for time_range in range (len(data['time'])):
start = [datetime.strptime(t,'%H:%M:%S') for t in time_range]
end = [datetime.strptime(t,'%H:%M:%S') for t in time_range]
print(time_diff(s, e))
assert time_diff(s, e) == time_diff(s.time(), e.time())

我的 csv 文件:-

在此处输入图像描述

我收到一个错误:-

TypeError                                 Traceback (most recent call last)
 <ipython-input-28-be40ae41d284> in <module>()
 12         return end - start
 13 for time_range in range (len(data['time'])):
 ---> 14     start = [datetime.strptime(t,'%H:%M:%S') for t in time_range]
 15     end = [datetime.strptime(t,'%H:%M:%S') for t in time_range]
 16     print(time_diff(s, e))

 TypeError: 'int' object is not iterable
1个回答
for time_range in range (len(data['time'])):
start = [datetime.strptime(t,'%H:%M:%S') for t in time_range]

time_range由于使用 range(int) 是一个整数。没有什么可以使用 int 进行迭代。它不是一个容器。