熊猫,Python。如何根据观察次数筛选出天数?

时间:2016-05-03 15:58:54

标签: python pandas dataframe

我想过滤掉几天,其中只有不到200分钟的观察结果。我的数据如下:

    Time                                   
    2009-01-30 09:30:00   85.1100  100.1100
    2009-01-30 09:39:00   84.9300  100.0500
    2009-01-30 09:40:00   84.9000  100.0000
    2009-01-30 09:45:00   84.9100   99.9400
    2009-01-30 09:48:00   84.8100   99.9000
    2009-01-30 09:55:00   84.7800  100.0000
                          ...       ...
    2016-02-29 15:58:00  193.7200   24.8300
    2016-02-29 15:59:00  193.4800   24.8700
    2016-02-29 16:00:00  193.6100   24.8300
    2016-03-01 09:30:00  195.2200   24.3099
    2016-03-01 09:31:00  195.1000   24.3300
    2016-03-01 09:32:00  195.1500   24.3100
    2016-03-01 09:33:00  195.1100   24.3800

第一列是DateTimeIndex,您可能已经注意到这是一个分钟数据,数据集中缺少几分钟。我想避免重新采样分钟数据和处理NA值,而是找到一种基于索引过滤天数的方法(日期有更多的> 200分钟观察它停留,< 200分钟观察它被丢弃)

1 个答案:

答案 0 :(得分:4)

假设Time是一列(不是索引),请尝试如下操作:

df.ix[df.groupby(df['Time'].dt.date)['col1'].transform('count') > 200]

其中col1是列名

如果Time列是索引:

df.ix[df.groupby(df.index.date)['col1'].transform('count') > 200]

更新:从Pandas 0.20.1 the .ix indexer is deprecated, in favor of the more strict .iloc and .loc indexers开始。

因此请使用df.loc[...]代替弃用的df.ix[...]