为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫datetime重采样计数为非零

熊猫datetime重采样计数为非零

米琪卡哇伊 2021-04-06 13:10:47
我有一个时间序列的每日降雨数据,如下所示:                     PRCPyear_month_day           1797-01-01 00:00:00   0.01797-01-02 00:00:00   0.01797-01-03 00:00:00   1.11797-01-04 00:00:00   0.01797-01-05 00:00:00   3.51797-02-01 00:00:00   8.11797-02-02 00:00:00   3.01797-02-03 00:00:00   0.01797-02-04 00:00:00   0.01797-02-05 00:00:00   0.01797-03-01 00:00:00   0.01797-03-02 00:00:00   0.01797-03-03 00:00:00   0.01797-03-04 00:00:00   0.01797-03-05 00:00:00   1.51797-04-01 00:00:00   6.31797-04-02 00:00:00  24.01797-04-03 00:00:00   0.01797-04-04 00:00:00   2.21797-04-05 00:00:00   5.91797-05-01 00:00:00   0.01797-05-02 00:00:00  15.91797-05-03 00:00:00   0.01797-05-04 00:00:00   0.01797-05-05 00:00:00   0.01797-06-01 00:00:00   1.61797-06-02 00:00:00   0.01797-06-03 00:00:00   0.01797-06-04 00:00:00   7.91797-06-05 00:00:00   0.0我已经能够将其索引列作为熊猫datetime对象导入。我正在尝试计算每个月的所有非零雨天。我可以按月分组:grouped = df.groupby(pd.Grouper(freq='M'))并可以通过以下方式每月计算所有内容:raindays = grouped.resample("M").count()但这也算是零降雨的日子。我发现了有关使用的提示nunique(),但似乎不适用于重采样。例如:raindays = grouped.resample("M").nunique()返回错误:AttributeError: 'DataFrameGroupBy' object has no attribute 'nunique'有没有一种方法可以对分组的熊猫对象中的非零值进行计数?
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

屏蔽那些0,然后重试。


df.mask(df.PRCP.eq(0)).groupby(pd.Grouper(freq='M')).count()

或者,使用更明显的版本replace。


df.replace({0 : np.nan}).groupby(pd.Grouper(freq='M')).count()

                PRCP

year_month_day      

1797-01-31         2

1797-02-28         2

1797-03-31         1

1797-04-30         4

1797-05-31         1

1797-06-30         2


查看完整回答
反对 回复 2021-04-13
?
达令说

TA贡献1821条经验 获得超6个赞

使用factorize和bincount


f, u = pd.factorize(df.index + pd.offsets.MonthEnd(0))

pd.Series(np.bincount(f, df.PRCP.values != 0).astype(int), u)


1797-01-31    2

1797-02-28    2

1797-03-31    1

1797-04-30    4

1797-05-31    1

1797-06-30    2

dtype: float64


查看完整回答
反对 回复 2021-04-13
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信