<p>这里有一种通过<code>pd.concat</code>和<code>pivot_table</code>的方法。它假设您能够将数据帧放入字典中,字典的长度可以是任意的。你知道吗</p>
<p>该解决方案还处理多个俱乐部,只保留最新的俱乐部。你知道吗</p>
<pre><code>dfs = {13: df13, 18: df18}
df = pd.concat([dfs[k].assign(Year=k) for k in dfs])
club_map = df.sort_values('Year', ascending=False)\
.drop_duplicates('Name')\
.set_index('Name')['Club']
df['Club'] = df['Name'].map(club_map)
res = df.pivot_table(index=['Name', 'Club'], columns='Year',
values='Overall', aggfunc=np.sum, fill_value=0)\
.reset_index().rename_axis(None, axis='columns')
</code></pre>
<p><strong>结果</strong></p>
<pre><code> Name Club 13 18
0 Casillas Real Madrid CF 89 0
1 Cristiano Ronaldo Real Madrid CF 92 94
2 David Silva Manchester City 88 0
3 De Gea Manchester United 0 90
4 F. Ribéry FC Bayern Munich 90 0
5 Falcao Atlético Madrid 88 0
6 G. Bale Real Madrid CF 0 90
7 Iniesta FC Barcelona 90 0
8 J. Boateng FC Bayern Munich 0 90
9 L. Messi FC Barcelona 94 93
10 L. Suárez FC Barcelona 0 92
11 M. Neuer FC Bayern Munich 0 92
12 N. Vidić Manchester United 89 0
13 Neymar FC Barcelona 0 92
14 R. Lewandowski FC Bayern Munich 0 90
15 T. Courtois Chelsea 0 89
16 W. Rooney Manchester United 89 0
17 Xavi FC Barcelona 90 0
18 Z. Ibrahimović Manchester United 88 90
</code></pre>