擅长:python、mysql、java
<p>基于问题标题,特别是“并为每个数据帧进行计算”部分,听起来您正在寻找pandas groupby功能。例如,如果要计算每个桶的所有列的平均值,可以执行以下操作:</p>
<pre><code>df1.groupby('Tub').agg('mean')
</code></pre>
<p>或者,如果希望将每个组作为单独的数据帧进行循环:</p>
<pre><code>for key, group in df1.groupby('Tub'):
# Do some calculation where key is the Tub and group is a data frame containing values for matching tubs
print(key, group)
</code></pre>
<p><strong>编辑附加请求:</strong><br/>
要将通用函数应用于每个组,您可以定义该函数,然后使用<code>pandas.core.groupby.GroupBy.apply</code>,例如:</p>
<pre class="lang-py prettyprint-override"><code>def drop_last(frame):
return frame.iloc[:-1,:]
df1.groupby('Tub').apply(drop_last)
</code></pre>
<p>这将返回一个数据帧,其中每个组中的最后一项都已删除</p>