<p>这是我的解决办法</p>
<pre><code>
import pandas as pd
df = pd.read_excel("df_85.xlsx")
df_copy = df.copy()
# introduce new column
time = pd.DatetimeIndex(df_copy.TIME)
df_copy['yearmonth'] = time.year.astype(str) + time.month.astype(str)
# find month occurences within each TRNDESCR group
new_df = df_copy.groupby(['TRNDESCR']).yearmonth.nunique().to_frame().reset_index()
new_df = new_df[new_df.yearmonth >= 3]
# get row with TRNDESCR matches those in new_df
output_df = df[df.TRNDESCR.isin(new_df.TRNDESCR.values)]
print(output_df)
</code></pre>
<p>输出</p>
<pre><code> ACNO YEAR MONTH TIME TRNCD TRNDESCR TRNAMT
2 85 2018 12 2018-12-20 15:30:00 109 Ib Transfer To Thongsavath Pra Account No:124 -10000
3 85 2018 12 2018-12-22 12:30:00 209 Bil Payment -500
5 85 2018 1 2019-01-22 12:30:00 209 Bil Payment -501
7 85 2019 1 2019-01-31 08:59:00 109 Ib Transfer To Thongsavath Pra Account No:124 -650000
10 85 2019 2 2019-02-04 15:21:00 109 Ib Transfer To Thongsavath Pra Account No:124 -863000
11 85 2019 2 2019-02-05 15:30:00 209 Bil Payment -600
</code></pre>
<p>它的工作原理是创建一个新列“yearmonth”(它是年+月的串联)。然后它执行groupby来trndescrc并计算每个组的唯一yearmonth数。你知道吗</p>