【问题标题】:Find missing dates between two datetime ranges查找两个日期时间范围之间的缺失日期
【发布时间】:2021-09-18 23:00:21
【问题描述】:

我在 pandas 数据框中有两个日期时间范围。分辨率为一分钟,例如日期时间 2021-03-26 10:23:00。

数据框 A 具有正确的日期时间,但数据框 B 缺少一些日期时间。有什么方法可以找到数据框 B 中缺少哪些日期时间,并使用数据框 A 的观察结果创建一个新的数据框 C,但使用数据框 B 的日期时间?

数据框 B

Dates Car
2021-03-26 10:23:00 1
2021-03-26 10:24:00 0
2021-03-26 10:26:00 1
2021-03-26 10:29:00 0

数据框 A

Dates
2021-03-26 10:23:00
2021-03-26 10:24:00
2021-03-26 10:25:00
2021-03-26 10:26:00

【问题讨论】:

    标签: python pandas dataframe datetime


    【解决方案1】:
    C = A[~A['date'].isin(B['date'])]
    

    如果每个 Dataframe 中都有日期列,则可以使用它

    【讨论】:

      【解决方案2】:

      如果两个 DataFrame 中都有 DatetimeIndex,请使用:

      A.index = pd.to_datetime(A.index)
      B.index = pd.to_datetime(B.index)
      
      C = A[~A.index.isin(B.index)]
      

      如果两个 DataFrame 中都有日期列,请使用:

      A['Dates']= pd.to_datetime(A['Dates'])
      B['Dates']= pd.to_datetime(B['Dates'])
      
      C = A[~A['Dates'].isin(B['Dates'])]
      
      print (C)
                      Dates  Car
      3 2021-03-26 10:29:00    0
      

      【讨论】:

      • 它返回一个空数据框,但大约有 122k 个相同的日期。
      • @Giorgos - 使用了哪种解决方案?
      • @Giorgos - 两者都有日期时间吗?
      • 我使用了第二种方案。
      • 是的,两者都是日期时间
      猜你喜欢
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      相关资源
      最近更新 更多