首先说一下需求,我需要将数据以分钟为单位进行分组,然后每一分钟内的数据作为一行输出,因为不同时间的数据量不一样,所以所有数据按照最长的那组数据为准,不足的数据以各自的最后一个数据进行补足。
之后要介绍一下我的数据源,之前没用的数据列已经去除,我只留下要用到的数据data列和时间戳time列,时间戳是以秒计的,可以看到一共是407454行。
data time
0 6522.50 1.530668e+09
1 6522.66 1.530668e+09
2 6523.79 1.530668e+09
3 6523.79 1.530668e+09
4 6524.82 1.530668e+09
5 6524.35 1.530668e+09
6 6523.66 1.530668e+09
7 6522.64 1.530668e+09
8 6523.25 1.530668e+09
9 6523.88 1.530668e+09
10 6525.30 1.530668e+09
11 6525.70 1.530668e+09
... ... ...
407443 6310.69 1.531302e+09
407444 6310.55 1.531302e+09
407445 6310.42 1.531302e+09
407446 6310.40 1.531302e+09
407447 6314.03 1.531302e+09
407448 6314.04 1.531302e+09
407449 6312.84 1.531302e+09
407450 6312.57 1.531302e+09
407451 6312.56 1.531302e+09
407452 6314.04 1.531302e+09
407453 6314.04 1.531302e+09
[407454 rows x 2 columns]
开始进行数据处理,定义一个函数,输入为一个DataFrame和时间列的命名。
def getdata_time(dataframe,name):
dataframe[name] = dataframe[name]/60 #将时间转换为分钟
dataframe[name] = dataframe[name].astype('int64')
datalen = dataframe.groupby(name).count().max() #获取数据最大长度
tim