我有一个pd.DataFrame,它看起来像这样:
datetime ... month year seconds
0 2023-03-02 20:59:00 ... 3 2023 75540
1 2023-03-02 20:58:00 ... 3 2023 75480
2 2023-03-02 20:57:00 ... 3 2023 75420
3 2023-03-02 20:56:00 ... 3 2023 75360
4 2023-03-02 20:55:00 ... 3 2023 75300
.. ... ... ... ... ...
775 2023-03-01 14:34:00 ... 3 2023 52440
776 2023-03-01 14:33:00 ... 3 2023 52380
777 2023-03-01 14:32:00 ... 3 2023 52320
778 2023-03-01 14:31:00 ... 3 2023 52260
779 2023-03-01 14:30:00 ... 3 2023 52200
[780 rows x 11 columns]
DateTime对象只能包含介于14:30:00和20:59:00之间的值.如果某些值超出此范围,则需要删除它们. 此外,两行之间的间隔每次应该正好是60秒,除非是从一天切换到另一天(当df[‘秒’]==52200时).请注意,数据可以跨越多天.
DF的第一行不必是20:59:00,例如,它可以从16:30:00开始.最后一排也是如此,这意味着它并不总是14:30:00. 有些行是随机缺失的,我想将它们添加进go .
DateTime、Month、Year、Second列应该是缺少的时间,而其他列中的值应该取它周围的两行之间的值.比方说,我们有:
datetime x month year seconds
299 2023-03-02 18:59:00 200 3 2023 68340
300 2023-03-02 18:56:00 230 3 2023 68160
我需要插入两行(因为以秒为单位的差异是180,我们有2分钟缺失).这些行中每一行的x列应该分别是210和220. 我try 使用While循环来实现这一点,但效率非常低--因为我有时会遇到超过400‘000行的df.有没有一种方法可以使用Pandas库或其他方法来实现这一点,而不是迭代每一对行,判断必须包括多少行,然后插入并重置索引?