擅长:python、mysql、java
<p>你可以简化逻辑。给定df,将两列转换为_datetime,将NaT保留为无效日期(“WIP”)</p>
<pre><code>df['DATE_OPENED'] = pd.to_datetime(df['DATE_OPENED'], errors='coerce')
df['CREATED_DATE'] = pd.to_datetime(df['CREATED_DATE'], errors='coerce')
</code></pre>
<p>现在创建一个列状态,默认为“Closed”:</p>
<pre><code>df['STATUS'] = 'Closed'
</code></pre>
<p>由于与<code>NaT</code>的任何比较都会得到<code>False</code>,因此可以将“Open”设置为</p>
<pre><code>df.loc[df['CREATED_DATE'] >= df['DATE_OPENED'], 'STATUS'] = 'Open'
</code></pre>
<p>给你</p>
<pre><code>df
INV_NUM LOCATION CREATED_DATE DATE_OPENED STATUS
0 1 North 2020-10-10 2020-10-11 Closed
1 2 North 2020-10-11 2020-10-11 Open
2 3 South 2020-10-12 2020-10-01 Open
3 4 West 2020-10-13 NaT Closed
</code></pre>