擅长:python、mysql、java
<p>如果我们的目标是在不修改DataFrame内容的情况下从DataFrame中提取相关日期,我们可以这样做:</p>
<p><strong>案例1:“日期”列已采用字符串格式,请使用:</strong></p>
<pre><code>df[df['Date'].str.endswith('12-31')]
</code></pre>
<p><strong>案例2:“日期”列已采用日期时间格式,请使用:</strong></p>
<pre><code>df[df.assign(Date=df['Date'].astype(str))['Date'].str.endswith('12-31')]
</code></pre>
<p>两者都根据当前数据类型提供所需的提取输出,而无需修改数据帧</p>
<h2>编辑</h2>
<p>如果希望自动提取业务年度结束时的条目,可以尝试以下代码。这是供您参考的,您可能需要进一步微调它以清理一些中间列</p>
<pre><code>df['Date1'] = pd.to_datetime(df['Date'])
df['BYearEnd'] = pd.to_datetime(df['Date1'].dt.year.astype(str) + '-12-01') + pd.offsets.BMonthEnd(1)
</code></pre>
<p>在这里,我们创建了临时列<code>Date1</code>和<code>BYearEnd</code>,其值与列<code>Date</code>对应。列<code>BYearEnd</code>包含列<code>Date</code>中各个日期的业务年度结束日期</p>
<p>然后,我们可以使用以下代码提取相关日期:</p>
<pre><code>df[df['Date1'] == df['BYearEnd']]
</code></pre>