我在熊猫中有一个日期时间索引:
High Low Open Close Volume Adj Close
Date
2021-01-04 14147.950195 13953.750000 14104.349609 14132.900391 495000 14132.900391
2021-01-05 14215.599609 14048.150391 14075.150391 14199.500000 492500 14199.500000
2021-01-06 14244.150391 14039.900391 14240.950195 14146.250000 632300 14146.250000
2021-01-07 14256.250000 14123.099609 14253.750000 14137.349609 559200 14137.349609
2021-01-08 14367.299805 14221.650391 14258.400391 14347.250000 613500 14347.250000
... ... ... ... ... ... ...
2021-06-21 15765.150391 15505.650391 15525.849609 15746.500000 351500 15746.500000
2021-06-22 15895.750000 15752.099609 15840.500000 15772.750000 322200 15772.750000
2021-06-23 15862.950195 15673.950195 15862.799805 15686.950195 287500 15686.950195
2021-06-24 15821.400391 15702.700195 15737.299805 15790.450195 316700 15790.450195
2021-06-25 15870.799805 15772.299805 15839.349609 15860.349609 314600 15860.349609
118 rows × 6 columns
我在列表中还有一个日期列表:
[datetime.date(2021, 1, 4),
datetime.date(2021, 1, 11),
datetime.date(2021, 1, 18),
datetime.date(2021, 1, 25),
datetime.date(2021, 2, 1),
datetime.date(2021, 2, 8),
datetime.date(2021, 2, 15),
datetime.date(2021, 2, 22),
datetime.date(2021, 3, 1),
datetime.date(2021, 3, 8),
datetime.date(2021, 3, 15),
datetime.date(2021, 3, 22),
datetime.date(2021, 3, 29),
datetime.date(2021, 4, 5),
datetime.date(2021, 4, 12),
datetime.date(2021, 4, 19),
datetime.date(2021, 4, 26),
datetime.date(2021, 5, 3),
datetime.date(2021, 5, 10),
datetime.date(2021, 5, 17),
datetime.date(2021, 5, 24),
datetime.date(2021, 5, 31),
datetime.date(2021, 6, 7),
datetime.date(2021, 6, 14),
datetime.date(2021, 6, 21),
datetime.date(2021, 6, 28),
datetime.date(2021, 7, 5),
datetime.date(2021, 7, 12),
datetime.date(2021, 7, 19),
datetime.date(2021, 7, 26),
datetime.date(2021, 8, 2),
datetime.date(2021, 8, 9),
datetime.date(2021, 8, 16),
datetime.date(2021, 8, 23),
datetime.date(2021, 8, 30),
datetime.date(2021, 9, 6),
datetime.date(2021, 9, 13),
datetime.date(2021, 9, 20),
datetime.date(2021, 9, 27),
datetime.date(2021, 10, 4),
datetime.date(2021, 10, 11),
datetime.date(2021, 10, 18),
datetime.date(2021, 10, 25),
datetime.date(2021, 11, 1),
datetime.date(2021, 11, 8),
datetime.date(2021, 11, 15),
datetime.date(2021, 11, 22),
datetime.date(2021, 11, 29),
datetime.date(2021, 12, 6),
datetime.date(2021, 12, 13),
datetime.date(2021, 12, 20),
datetime.date(2021, 12, 27)]
并非所有日期都在熊猫 df 中。我想要做的是只选择列表中的日期,而不是任何其他日期。我提出的解决方案是使用 datetime
范围内的 for 循环到 'loc' 中的日期时间索引 df 并将其附加到另一个数据帧。我想知道是否有更简单的方法来做到这一点?
答案 0 :(得分:2)
您可以使用 pd.Index.isin
检查数据框的索引值是否在给定列表中;这将返回一个 True
/ False
数组,您可以使用该数组索引原始数据帧以选择其索引在列表中的行:
dates_in_list = df.index.isin(your_list)
new_df = df[dates_in_list]