我有一個簡單的熊貓數據框,每天大約有 10000 到 20000 個條目。此數據框包含一個點和一個日期時間 (datetime64)。例如,它看起來像這樣: point timestamp_local0 A 2018-09-29 00:00:201 A 2018-09-29 00:04:342 A 2018-09-29 00:06:593 B 2018-09-29 00:11:094 B 2018-09-29 01:19:28... ... ...24282 B 2018-09-29 21:40:2624283 C 2018-09-29 21:40:3124284 C 2018-09-29 21:45:1724285 A 2018-09-29 22:20:2924286 B 2018-09-29 22:28:08我現在要得到的是一個數據框,它按點和我想指定的間隔對上面的數據框進行分組,并且還計算間隔的每個點的條目數量。此外,間隔應該是例如 5 分鐘。間隔,10分鐘。間隔或每天、每月或每年的 1 個間隔。到目前為止,這是我對間隔進行分段的結果:df['10min_period'] = df.apply(lambda x: "period_%d"%(int(x[1].minute/10) + 1), axis=1)這將返回: point timestamp_local 10min_period0 A 2018-09-29 00:00:20 period_11 B 2018-09-29 00:04:34 period_12 B 2018-09-29 00:06:59 period_13 C 2018-09-29 00:11:09 period_24 C 2018-09-29 01:19:28 period_2這計算了時期:df = df.groupby([df['point'], df['10min_period']]).agg(['count'])這將返回以下數據框: timestamp_localpoint 10min_period countA period_1 2092 period_2 2437 period_3 2181 period_4 2525 period_5 2325 period_6 2317B period_1 1814 period_2 1719 period_3 1732 period_4 1575 period_5 1789 period_6 1781... ... ...但這并不是我想要的。原因是期間行條目錯誤。我的代碼以獨立于年、月、日和小時的10 分鐘間隔對時間段進行了分段。這正是我不想要的!我想要一個按我指定的時間間隔分段的日期框架,例如 5 分鐘。, 10 min., 1 day, 1 year 等等但考慮年、月、日、小時和分鐘?。纯催@些句點是如何命名的?。┮赃@種方式命名時間段非常重要,所以我知道條目包含哪一天和時間間隔。我怎樣才能做到這一點?例如,如果它是 5 分鐘的間隔,則該時間段應命名為,period_2018-09-29_00:00:00依此類推。period_2018-09-29_00:05:00period_2018-09-29_00:25:00
1 回答

慕萊塢森
TA貢獻1810條經驗 獲得超4個贊
您是否正在尋找這樣的東西,間隔很短:
df.groupby(['point',df.timestamp_local.dt.floor('5Min')]).size()
這個,對于月/年
df.groupby(['point', df.timestamp_local.dt.to_period('M')]).size()
添加回答
舉報
0/150
提交
取消