簡體   English   中英

具有不規則時間序列的groupby之后的熊貓數據幀過濾

[英]Pandas dataframe filtering after groupby with irregular time series

我有一個帶有時間戳的時間序列的DataFrame,如下所示:

timestamp              A       B    
2018-11-12 14:03:53  9.45     501.0
2018-11-12 14:03:58  73.8     108.0
2018-11-12 14:04:09  4.25     215.0
2018-11-12 14:04:19  62.39    551.0
2018-11-12 14:04:29  15.98    113.0

我想基於此數據的bin進行一些匯總,例如:

df.groupby(pd.Grouper(freq='30Min')).apply(custom_agg)

但是,問題在於此分組程序或serialize創建了連續范圍的bin,但是我的數據每天都被限制在某些小時內(例如,在14.00之后)。 這使我有大量沒有數據的組:

2018-11-13 00:00:00    NaN    NaN        0.0
2018-11-13 00:30:00    NaN    NaN        0.0
2018-11-13 01:00:00    NaN    NaN        0.0
2018-11-13 01:30:00    NaN    NaN        0.0
2018-11-13 02:00:00    NaN    NaN        0.0
2018-11-13 02:30:00    NaN    NaN        0.0
2018-11-13 03:00:00    NaN    NaN        0.0

我想過濾掉這些。 使用df.filter()沒什么用,因為問題不在於原始行,而在於組。

我嘗試使用applydf.groupby(pd.Grouper(freq='30Min')).apply(lambda x: x[x.index.min().hour >= 14]) ,但是出現KeyError: True (旁白,為什么這不起作用?)

在應用groupby 之后,在涉及分組的給定條件集合中篩選DataFrame的最佳方法是什么?

嘗試使用.dt.floor

df.groupby(df['timestamp'].dt.floor('30Min')).apply(custom_agg)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM