使用datetime.date对象列表过滤数据帧行

ade*_*e1e 3 python pandas

问题:

我试图使用datetime.date对象列表过滤我的数据帧行.我明白了ValueError: Arrays were different lengths: 175033 vs 33

数据:

type(third_friday_lst)
list

type(third_friday_lst[0])
datetime.date

third_friday_lst

[datetime.date(2013, 1, 18),
 datetime.date(2013, 2, 15),
 datetime.date(2013, 3, 15),
 datetime.date(2013, 4, 19),
 datetime.date(2013, 5, 17),
 datetime.date(2013, 6, 21),
 datetime.date(2013, 7, 19),
 datetime.date(2013, 8, 16),
 datetime.date(2013, 9, 20),
 datetime.date(2013, 10, 18),
 datetime.date(2013, 11, 15)]
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

如果我使用以下代码,我得到所需的输出,但只有当我在列表中指定第一项时third_friday_lst[0]:

data[data['dt-date'] == third_friday_lst[0]]

                       Date         Time    Open    High    Low   Last Volume   dt-date
Timestamp                               
2013-01-18 08:00:00 2013/1/18   08:00:00    7875.5  7876.0  7867.5  7870.5 1059 2013-01-18
2013-01-18 08:05:00 2013/1/18   08:05:00    7871.0  7878.5  7870.5  7877.5  511 2013-01-18
2013-01-18 08:10:00 2013/1/18   08:10:00    7877.0  7879.0  7875.5  7875.5  226 2013-01-18
2013-01-18 08:15:00 2013/1/18   08:15:00    7875.5  7878.0  7874.5  7876.0  162 2013-01-18
Run Code Online (Sandbox Code Playgroud)

期望的输出:

我想在不使用列表索引的情况下过滤data使用行,因为我想要列表中包含的所有日期.我宁愿不使用该列,但如果这是必需的,它是好的.third_friday_lst[0]['dt-date']

谢谢

Abd*_*dou 5

你可以试试:

data[data['dt-date'].isin(third_friday_lst)]
Run Code Online (Sandbox Code Playgroud)

谢谢!