如何使用另一个日期时间索引获取具有日期时间索引的 Pandas 数据框中的行?
Posted
技术标签:
【中文标题】如何使用另一个日期时间索引获取具有日期时间索引的 Pandas 数据框中的行?【英文标题】:How to get the rows in Pandas dataframe with datetime index using another datetime index? 【发布时间】: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”)的方法是什么?
【问题讨论】:
【参考方案1】:使用Index.intersection
:
idx = idx1.intersection(idx2)
或者,如果之前没有定义索引:
idx = df1.index.intersection(df2.index)
【讨论】:
为您服务。 这是将两个 DateTimeIndex 的交集作为 DateTimeIndex 的方法。但是您如何从原始数据框中获取行(这是原始问题)?df.loc[idx]
给了我一个比原来的 df
有更多行的数据框。我原来的df
有多次出现相同的日期。
@jezrael 我知道你很快,但我不知道你这么快!是的,它有效。
感谢@jezrael!我正在搜索将近一个小时以寻找干净的答案以上是关于如何使用另一个日期时间索引获取具有日期时间索引的 Pandas 数据框中的行?的主要内容,如果未能解决你的问题,请参考以下文章