【发布时间】:2021-11-18 17:03:47
【问题描述】:
import pandas as pd
sim = [['Matthew Stafford', 15, 13, 12], ['Dalvin Cook', 18, 16, 17], ['Daniel Jones', 17, 17, 15], ['Joe Mixon', 16, 15, 15]]
col = ['Player', 1 , 2, 3]
NFL_Sim = pd.DataFrame(sim, columns=col)
list = [['Matthew Stafford', 'Dalvin Cook'], ['Daniel Jones', 'Joe Mixon']]
col = ['QB', 'RB']
output_lines = pd.DataFrame(list, columns=col)
for x in range(1, 4):
output_lines[x] = output_lines.QB.map(NFL_Sim.set_index('Player')[x].to_dict()) + output_lines.RB.map(NFL_Sim.set_index('Player')[x].to_dict())
print(output_lines)
QB RB 1 2 3
0 Matthew Stafford Dalvin Cook 33 29 29
1 Daniel Jones Joe Mixon 33 32 30
所需的输出是正确的,但是随着我的扩展,我在 NFL_Sim 数据框中有数千列,这使得映射非常慢。有没有更有效的方法来编写这个 for 循环?还是先将 output_lines 转换为列表?我真的不确定什么是最好的。
【问题讨论】:
-
请发布预期的输出数据框
-
抱歉,我已经发布了。
标签: python pandas list for-loop