我有一個如下的時間序列數(shù)據(jù)集。我想將其拆分為多個20個bin,獲取每個bin中的最小和最大時間戳,并根據(jù)是否至少有1個成功結(jié)果向每個bin添加一個標志(成功:result = 0;失敗:result = 1)data = [{"product": "abc", "test_tstamp": 1530693399, "result": 1}, {"product": "abc", "test_tstamp": 1530693405, "result": 0}, {"product": "abc", "test_tstamp": 1530693410, "result": 1}, {"product": "abc", "test_tstamp": 1530693411, "result": 0}, {"product": "abc", "test_tstamp": 1530693415, "result": 0}, {"product": "abc", "test_tstamp": 1530693420, "result": 0}, {"product": "abc", "test_tstamp": 1530693430, "result": 0}, {"product": "abc", "test_tstamp": 1530693431, "result": 0}]我可以使用pandas.cut()將數(shù)據(jù)切割為20秒的間隔,并獲取每個bin的最小和最大時間戳import numpy as npimport pandas as pdarange = np.arange(1530693398, 1530693440, 20)data = [{"product": "abc", "test_tstamp": 1530693399, "result": 1}, {"product": "abc", "test_tstamp": 1530693405, "result": 0}, {"product": "abc", "test_tstamp": 1530693410, "result": 1}, {"product": "abc", "test_tstamp": 1530693411, "result": 0}, {"product": "abc", "test_tstamp": 1530693415, "result": 0}, {"product": "abc", "test_tstamp": 1530693420, "result": 1}, {"product": "abc", "test_tstamp": 1530693430, "result": 1}, {"product": "abc", "test_tstamp": 1530693431, "result": 1}]df = pd.DataFrame(data)df['bins'] = pd.cut(df['test_tstamp'], arange)output_1 = df.groupby(["bins"]).agg({'result': np.ma.count, 'test_tstamp': {'mindate': np.min, 'maxdate': np.max}}) test_tstamp result maxdate mindate countbins (1530693398, 1530693418] 1530693415 1530693399 5(1530693418, 1530693438] 1530693431 1530693420 3并能夠找到result success和result failed使用groupby()我不確定如何組合output_1,output_2因此result count我想使用而不是上面的列result success,result failed并將flag列與each關(guān)聯(lián)bin。任何指針都會有所幫助!謝謝!
添加回答
舉報
0/150
提交
取消