【问题标题】:How to get the rows in Pandas dataframe with datetime index using another datetime index?如何使用另一个日期时间索引获取具有日期时间索引的 Pandas 数据框中的行?
【发布时间】:2020-06-04 17:56:03
【问题描述】:

我有一个带有以下日期时间索引的 Pandas 数据框:

DatetimeIndex(['2020-01-02', '2020-01-03', '2020-01-06', '2020-01-07',
               '2020-01-08', '2020-01-09', '2020-01-10', '2020-01-13',
               '2020-01-14', '2020-01-15',
               ...
               '2020-01-17', '2020-01-21', '2020-01-22', '2020-01-23',
               '2020-01-24', '2020-01-27', '2020-01-28', '2020-01-29',
               '2020-01-30', '2020-01-31'],
              dtype='datetime64[ns]', name='Date', length=49098, freq=None)

我想获取与以下日期时间索引相交的行:

DatetimeIndex(['2020-01-02', '2020-01-03', '2020-01-06', '2020-01-07',
               '2020-01-08', '2020-01-09', '2020-01-10'],
              dtype='datetime64[ns]', name='Date', freq=None)

最自然(又名“Pythonic”)的方法是什么?

【问题讨论】:

    标签: python pandas datetime indexing


    【解决方案1】:

    使用Index.intersection:

    idx = idx1.intersection(idx2)
    

    或者,如果之前没有定义索引:

    idx = df1.index.intersection(df2.index)
    

    【讨论】:

    • 为您服务。
    • 这是将两个 DateTimeIndex 的交集作为 DateTimeIndex 的方法。但是您如何从原始数据框中获取行(这是原始问题)? df.loc[idx] 给了我一个比原来的 df 有更多行的数据框。我原来的df 有多次出现相同的日期。
    • @jezrael 我知道你很快,但我不知道你这么快!是的,它有效。
    • 感谢@jezrael!我正在搜索将近一个小时以寻找干净的答案
    猜你喜欢
    • 2021-08-14
    • 2014-03-07
    • 2017-08-28
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2018-11-23
    • 2020-01-02
    • 1970-01-01
    相关资源
    最近更新 更多