<p>首先将列转换为数据帧,按<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.dt.year.html" rel="nofollow noreferrer">^{<cd1>}</a>转换为年,并按<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.eq.html" rel="nofollow noreferrer">^{<cd2>}</a>比较相等,按<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.gt.html" rel="nofollow noreferrer">^{<cd3>}</a>比较较大,按<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.lt.html" rel="nofollow noreferrer">^{<cd4>}</a>比较较小,按<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ne.html" rel="nofollow noreferrer">^{<cd5>}</a>比较不相等:</p>
<pre><code>df['Start_Date'] = pd.to_datetime(df['Start_Date'])
df['End_Date'] = pd.to_datetime(df['End_Date'])
s = df['Start_Date'].dt.year
e = df['End_Date'].dt.year
m1 = s.eq(2017)
m2 = s.lt(2017) & e.gt(2017)
m3 = e.ne(2017)
</code></pre>
<p>最后将所有掩码<code>m1</code>和<code>m2</code>按位<code>OR</code>(<code>|</code>)和<code>m3</code>按位<code>AND</code>按^<cd12>}链接在一起,最后按<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.astype.html" rel="nofollow noreferrer">^{<cd13>}</a>或<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.view.html" rel="nofollow noreferrer">^{<cd14>}</a>转换为整数:</p>
<pre><code>df['Value'] = ((m1 | m2) & m3).astype(int)
#alternative
#df['Value'] = ((m1 | m2) & m3).view('i1')
print (df)
Start_Date End_Date Value
0 2014-05-16 2015-05-18 0
1 2015-05-19 2018-05-13 1
2 2016-05-14 2017-05-12 0
3 2017-05-13 2018-05-16 1
4 2018-05-17 2019-05-14 0
</code></pre>