擅长:python、mysql、java
<p>您可以使用底层<code>reshape</code>数组上的<code>numpy</code>来获得有效的解决方案。你知道吗</p>
<hr/>
<p><strong><em>步骤1</em></strong><br/>
有相当多的重塑涉及,最后把数据放入一个<code>empty</code>numpy数组。你知道吗</p>
<pre><code>home = df.iloc[:, [1,3]]
away = df.iloc[:, [0,2]]
total = np.empty((home.shape[0] * 2, home.shape[1]), dtype=object)
total[::2] = away
total[1::2] = home
</code></pre>
<p><strong><em>步骤2</em></strong><br/>
现在我们已经格式化了数据,我们可以使用<code>expanding.mean</code>和更多的整形</p>
<pre><code>d = pd.DataFrame({'team': total[:, 0], 'score': total[:, 1].astype(float)})
out = d.groupby('team').score.expanding().mean().reset_index().sort_values(by='level_1')
pd.DataFrame(
out[['team', 'score']].values.reshape(-1, 4)[:, [0,2,1,3]],
columns=df.columns
)
</code></pre>
<p/>
<pre><code> Visitor Home Visitor_rtg Home_rtg
0 Sixers Celtics 83.4 100.7
1 Thunder Warriors 97.7 105.6
2 Bucks Hornets 110.2 109.2
3 Pelicans Sixers 88.1 86.3
4 Hornets Wizards 99.65 102.3
</code></pre>