我有一个数据集,其日期在索引11000个日期中。我有第二个数据集,只有一列由日期组成。
我只想保留第一个数据集的行,其中包含第二个数据集中包含的日期。
ex.
[In] DataSet1
[Out]
1 2 3 4 5
2019-04-19 NaN NaN NaN NaN NaN
2019-04-20 NaN NaN NaN NaN NaN
2019-04-21 apple NaN NaN NaN NaN
2019-04-22 NaN NaN peer NaN NaN
2019-04-23 NaN car NaN NaN NaN
2019-04-24 NaN NaN NaN yellow NaN
2019-04-25 NaN NaN NaN NaN NaN
[In] DataSet2
[Out]
0 2019-04-21
1 2019-04-23
我想要什么
[In] "Intersection" (which is not really an intersection) btween the 2 datasets.
[Out]
1 2 3 4 5
2019-04-21 apple NaN NaN NaN NaN
2019-04-23 NaN car NaN NaN NaN
再次,第二个数据集只包含一些日期。
非常感谢!
答案 0 :(得分:1)
您可以先检查两个dtype
是否相同,然后在评论中按loc
选择MaxU:
print (DataSet1.index.dtype)
datetime64[ns]
print (DataSet2['col'].dtype)
datetime64[ns]
print (DataSet2.columns)
Index(['col'], dtype='object')
print (DataSet2)
col
0 2019-04-21
1 2019-04-23
df = DataSet1.loc[DataSet2['col']]
print (df)
1 2 3 4 5
2019-04-21 apple NaN NaN NaN NaN
2019-04-23 NaN car NaN NaN NaN
intersection
的另一个解决方案:
idx = DataSet1.index.intersection(DataSet2['col'])
print (idx)
DatetimeIndex(['2019-04-21', '2019-04-23'], dtype='datetime64[ns]', freq=None)
df = DataSet1.loc[idx]
print (df)
1 2 3 4 5
2019-04-21 apple NaN NaN NaN NaN
2019-04-23 NaN car NaN NaN NaN