【问题标题】:Selecting datetime from dataframe where zero changes to not zero?从零变为非零的数据框中选择日期时间?
【发布时间】:2020-06-30 14:31:13
【问题描述】:

我有一段代码在基于日期时间格式的图中指示夜间时间 像这样

def night(i):
    i.axvspan(pd.Timestamp('2012 7 17 20:30'),pd.Timestamp('2012 7 18 03:30'),alpha=0.08,color='grey')
    i.axvspan(pd.Timestamp('2012 7 18 20:30'),pd.Timestamp('2012 7 19 03:30'),alpha=0.08,color='grey')
    i.axvspan(pd.Timestamp('2012 7 19 20:30'),pd.Timestamp('2012 7 20 03:30'),alpha=0.08,color='grey')
    i.axvspan(pd.Timestamp('2012 7 20 20:30'),pd.Timestamp('2012 7 21 03:30'),alpha=0.08,color='grey')

还有更多……

现在我已经通过检查我的数据框的日出和日落手动设置时间戳,但现在我想创建一个代码,可以随着一年中日出和日落时间的变化而自动执行此操作。

在我的 df 中,我有日出指示,Kdown 从 0 转变为 not 0

datetime                 Kdown
2012-06-01 02:00:00      0.000000
2012-06-01 02:05:00      0.000000
2012-06-01 02:10:00      0.000000
2012-06-01 02:15:00      0.000000
2012-06-01 02:20:00      0.000000
2012-06-01 02:25:00      0.000000
2012-06-01 02:30:00      0.000000
2012-06-01 02:35:00      0.004167
2012-06-01 02:40:00      0.008333
2012-06-01 02:45:00      0.012500
2012-06-01 02:50:00      0.016667

对于日落,它的反向情况是 Kdown 从 not 0 变为 0。因此,我正在寻找一种解决方案,当 0 变为非零时选择 datetime

我已经在网上搜索了解决方案,但我还没有遇到任何似乎可以解决我的问题的方法。

【问题讨论】:

    标签: python dataframe datetime slice zero


    【解决方案1】:
    df[df['Kdown']>0].groupby('datetime').first()
    df[df['Kdown']>0].groupby('datetime').last()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      • 2020-10-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      • 2016-05-09
      相关资源
      最近更新 更多