擅长:python、mysql、java
<p>为什么不直接过滤呢?你根本不需要循环。你知道吗</p>
<p>您可以通过以下方式获得筛选的索引:</p>
<pre><code>operations_per_user.index[operations_per_user <= 3]
</code></pre>
<p>然后可以从df中筛选这些索引,从而得出解决方案:</p>
<pre><code>data = data[data['user_id'] not in (operations_per_user.index[operations_per_user <= 3])]
</code></pre>
<p><strong>编辑</p>
<p>我的理解是,您希望删除数据中出现次数少于3次的任何用户。您不需要为此创建<code>value_counts</code>列表,您可以执行<code>groupby</code>并找到计数,然后在此基础上进行筛选。你知道吗</p>
<pre><code>filtered_user_ids = data.groupby('user_id').filter(lambda x: len(x) <= 3)['user_id'].tolist()
data = data[~data[user_id].isin(filtered_user_ids)]
</code></pre>