gpt4 book ai didi

python - 将字典值填充为 pandas 数据框中值的总和

转载 作者:行者123 更新时间:2023-11-28 20:12:36 25 4
gpt4 key购买 nike

我有一个字典,其中包含各种玩家的名字,所有值都设置为 None,就像这样......

players = {'A': None,
'B': None,
'C': None,
'D': None,
'E': None}

包含键(即玩家名称)的 Pandas 数据框 (df_1)

   col_0  col_1  col_2
----- ----- -----
0 A B C
1 A E D
2 C B A

和一个包含他们在相应比赛中得分的数据框(df_2)

    score_0  score_1  score_2
----- ----- -----
0 1 10 2
1 6 15 7
2 8 1 9

因此,A的总分是..

      1       +      6        +      9         =  16
(0, score_0) + (1, score_0) + (2, score_2)

我想将所有玩家(A、B、C..)映射到我之前创建的玩家字典中的总分。

这是我写的一些代码...

for player in players:
players[player] = df_2.loc[df_1['col_0'] == player, 'score_0'].sum()
players[player] += df_2.loc[df_1['col_1'] == player, 'score_1'].sum()
players[player] += df_2.loc[df_1['col_2'] == player, 'score_2'].sum()
print(players)

这会产生预期的结果,但我想知道是否有更快、更像 pandas 的方法可用。任何帮助将不胜感激。

最佳答案

Ummm pandas stack ,通常我们可以groupby after flatten the df

s=df2.stack().groupby(df1.stack().values).sum()
s
A 16
B 11
C 10
D 7
E 15
dtype: int64
s.to_dict()
{'A': 16, 'B': 11, 'C': 10, 'D': 7, 'E': 15}

关于python - 将字典值填充为 pandas 数据框中值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57340634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com