2 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
使用groupby有pd.Grouper:
u = (df.groupby(['computer', pd.Grouper(key='time', freq='4s')])
.sum()
.sort_index(level=1)
.reset_index())
u['time'] = u['time'].dt.second
u
computer time value
0 0 0 5
1 1 0 1
2 2 0 5
3 3 0 6
4 2 4 3
5 3 4 4
您可以允許一個(gè)調(diào)用同時(shí)處理“計(jì)算機(jī)”上的分組和重采樣“時(shí)間”,而不是單獨(dú)的groupbyand 。resamplegroupby

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用, reset_index, thengroupby和resample:
df.reset_index(level=0).groupby('computer').resample('4s')['value']\
.sum().to_frame().sort_index(level=1)
或者
df.reset_index('computer').groupby('computer').resample('4s')['value']\
.sum().to_frame().sort_index(level=1)
輸出:
value
computer time
0 1970-01-01 00:00:00 5
1 1970-01-01 00:00:00 1
2 1970-01-01 00:00:00 5
3 1970-01-01 00:00:00 6
2 1970-01-01 00:00:04 3
3 1970-01-01 00:00:04 4
添加回答
舉報(bào)