熊猫按小时数分组,并保持每小时观察

时间:2019-06-17 13:11:51

标签: python-3.x pandas dataframe group-by

我有一个熊猫数据框,其中包含一列和一个日期时间索引,我需要按小时对数据进行分组,并按小时对每个分组的每个观察值(记录)进行保存,以下方法可以对数据进行分组:

data= data.groupby(data.index.hour).max()

问题在于,前一种方法允许使用聚合器(最大值,平均值或最小值)进行分组,而我需要保留每个观察值。

1 个答案:

答案 0 :(得分:2)

如果按小时分组,那么您将仅获得24条唯一记录,一天中每小时记录一次,而不是数据中每一天的记录。

如果您打算汇总每小时出现的多个观察值并随时间推移进行查看,则需要使用pandas.Grouper类。

在任何一种情况下,您都可以应用list来将每个观测值单独保留在每个组中,而不是进行汇总。

注意:您需要用DF中包含观测值的数据列的名称替换“ data_col”

分组到小时数

data = data.groupby(data.index.hour)["data_col"].apply(list)

按小时顺序分组

time_grouper = pd.Grouper(freq="1h")

data = data.groupby(time_grouper)["data_col"].apply(list)