我有这个数据帧(一个小时后它如何变化的例子(。问题是,它是一个160000行的数据帧,在一个月内只以小时为单位前进,所以假设数据是完整的,我想生成一个月的时间和日期。秒是带小数的。
105 59:12.9
106 59:22.8
107 59:32.9
108 59:43.0
109 59:53.1
110 00:03.2
111 00:13.3
112 00:22.3
113 00:32.4
114 00:42.6
据我所见,pandas中的数据时间库不允许以这种格式重新采样。我想获得格式为2012/1/1 00:00:00的数据(假设它始于2012年1月1日(。
有办法和熊猫一起做吗?还是我应该在几分钟内做一些迭代函数?
我不认为有一种方法可以在不迭代列表的情况下完成您想要的操作,但您可以使用Pandas的apply方法:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html
这里有一个粗略的例子:
df = YourDataFrame
day = datetime.date(2012, 1, 1)
hour = 0
last = datetime.strptime("00:00.0","%M:%S.%f")
def expandtime(time):
t = datetime.strptime(time,"%M:%S.%f")
if t < last:
if hour >= 23:
day = day + datetime.timedelta(days=1)
hour = 0
else:
hour += 1
last = t
return day + timedelta(hours=hour, minutes=t.minute, seconds=t.second)
df.apply(expandtime, axis=1)