<p>可能有一些原因。在</p>
<p>其中一个<a href="https://stackoverflow.com/questions/45654473/holiday-calendar-in-pandas-dataframe#comment78267241_45654473">as mentioned by @unutbu - is a wrong (string) dtype</a>。确保您的<code>X['Time (CET)']</code>列是<code>datetime</code>数据类型。可按如下方式进行:</p>
<pre><code>X['Time (CET)'] = pd.to_datetime(X['Time (CET)'], dayfirst=True, errors='coerce')
</code></pre>
<p>你说的另一个原因是时间部分。在</p>
<p>下面是一个演示:</p>
^{2}$
<p>产量:</p>
<pre><code>In [30]: df
Out[30]:
Date
0 2017-01-01 01:01:01
1 2017-01-01 10:01:01
2 2017-01-01 19:01:01
3 2017-01-02 04:01:01
4 2017-01-02 13:01:01
5 2017-01-02 22:01:01
6 2017-01-03 07:01:01
7 2017-01-03 16:01:01
8 2017-01-04 01:01:01
9 2017-01-04 10:01:01
.. ...
990 2018-01-07 07:01:01
991 2018-01-07 16:01:01
992 2018-01-08 01:01:01
993 2018-01-08 10:01:01
994 2018-01-08 19:01:01
995 2018-01-09 04:01:01
996 2018-01-09 13:01:01
997 2018-01-09 22:01:01
998 2018-01-10 07:01:01
999 2018-01-10 16:01:01
[1000 rows x 1 columns]
</code></pre>
<p>由于时间部分不匹配,<code>holidays</code>筛选无效:</p>
<pre><code>In [29]: df.loc[df.Date.isin(holidays)]
Out[29]:
Empty DataFrame
Columns: [Date]
Index: []
</code></pre>
<p>我们可以通过规范化(截断时间部分或将时间设置为<code>00:00:00</code>)的datetime列来使其正常工作:</p>
<pre><code>In [31]: df.loc[df.Date.dt.normalize().isin(holidays)]
Out[31]:
Date
0 2017-01-01 01:01:01
1 2017-01-01 10:01:01
2 2017-01-01 19:01:01
320 2017-05-01 01:01:01
321 2017-05-01 10:01:01
322 2017-05-01 19:01:01
734 2017-10-03 07:01:01
735 2017-10-03 16:01:01
</code></pre>