多くの列を持つパンダデータフレーム(df)があります。わかりやすくするために、私はここにダミーデータを含む3つの列を掲示しています。パンダのデータフレームのグループ化
Timestamp Source Length
0 1 5
1 1 5
2 1 5
3 2 5
4 2 5
5 3 5
6 1 5
7 3 5
8 2 5
9 1 5
まず、私はdfのインデックスとしてタイムスタンプを設定します。
index = pd.DatetimeIndex(data[data.columns[1]]*10**9) # Convert timestamp
df = df.set_index(index) # Set Timestamp as index
次に私は5秒ビンにグループ化データをGROUPBYとpd.TimeGrouper機能を使用して、次のように各ビンの累積長さを計算することができる:
df_length = data[data.columns[5]].groupby(pd.TimeGrouper('5S')).sum()
だからdf_lengthデータフレームは次のようになります。
Timestamp Length
0 25
5 25
今問題がある:「私は5秒の同じビンを取得したいのですが、アリは次の形式で別々の列内の各ソース(1,2および3)の累積長さを計算するために:
Timestamp 1 2 3
0 15 10 0
5 10 5 10
私はそれを得るためにいくつかの条件でdf.groupbyを使うことができると思います。しかし、混乱し、疲れて、今:(
はパンダの機能を使用してソリューションを感謝
あなたの「ダミーデータ」には5列がないので、あなたの 'df_length'関数は機能しません – asongtoruin