python - Pandas , python 。如何根据观察次数过滤掉天数?

标签 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 分钟的观察结果被丢弃)

最佳答案

假设 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[...]

关于python - Pandas , python 。如何根据观察次数过滤掉天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37008935/

相关文章:

python - Pandas:分离分组和索引

python - 如何检查具有多个列表的 pandas 列中的项目是否重复?

r - 如何处理重叠因子水平? (例如,在制作表格和图表时)

python - 将列表添加为 pandas Dataframe 中的值

R - 帮助将因子转换为日期 (%m/%d/%Y %H :%M)

python - 如何在插入时生成带有列名称的转储 sqlite3?

python - 旋转多索引数据

python - "how to print multiple user inputs on one line"

python - 等待文件的脚本在 while 循环中使用 100% CPU

python - 如何配置 Tkinter 列表框以禁用状态保持所选项目突出显示