0

我试图在列中找到每天第一次和最后一次出现的值。

我有一个看起来像这样的数据框:

                       a        b        c
2019-04-01 19:47:00    False    False     True
2019-04-01 19:48:00    False    False     True
2019-04-01 19:49:00    True     False     True
2019-04-01 19:50:00    True     False     True
2019-04-01 19:51:00    True     False     True
...
2019-04-28 11:22:00    False    True      False
2019-04-28 11:23:00    False    True      False
2019-04-28 11:24:00    False    False     True
2019-04-28 11:25:00    False    False     False
2019-04-28 11:26:00    False    False     False

我想找到每天(2019-04-01 到 2019-04-28)第一次和最后一次出现 True 的索引,并将其附加到另一个 DataFrame。

你建议我怎么做?

谢谢!

4

1 回答 1

0
df['d'] = pd.to_datetime(df.index).strftime(date_format='%Y%m%d')
df = df.reset_index()
df.columns = ['date','a','b','c','d']
df[(sum([df['a'],df['b'],df['c']])>0)].groupby('d').agg(first=('date','first'),
                                                         last=('date','last'))

输出

                        first                 last
d
20190401  2019-04-01 19:47:00  2019-04-01 19:51:00
于 2020-06-11T21:08:05.557 回答