删除日期的有效方法 Jupyter 笔记本

Efficient way to drop dates Jupyter notebook

提问人:Rafael del Rincón 提问时间:9/21/2023 更新时间:9/21/2023 访问量:26

问:

我有下一个代码:

Date = df_new[['Date']].groupby(['Date']).sum().reset_index()
for z in Date['Date']:
    df_old=df_old[df_old.Date != z ]
df_old

但是如果我试图替换整年,则需要很长时间

有没有更有效的方法可以与整个列进行比较?

我也尝试了外部合并和替换,但认为我的完整代码在 0 中挣扎,我更喜欢根据列表删除

pandas dataframe jupyter-notebook 逻辑运算符

评论


答:

0赞 NLP from scratch 9/21/2023 #1

假设您要删除 中出现的日期,您可以直接比较 using 找到重叠,然后使用 否定它,以创建要过滤的索引。这比使用循环要高效得多:df_olddf_newpd.isin~for

import numpy as np
import pandas as pd

old_dates = pd.date_range(start='01/01/2018', end='1/08/2018', freq="30min")
new_dates = pd.date_range(start='01/05/2018', end='1/06/2018', freq="30min")

# Old date values not appearing in new
diff_index = ~old_dates.isin(new_dates)

old_dates[diff_index]