如何将列表的元素添加到pandas数据库中的行元素

sol*_*ick 7 python pandas

我有一个名为 db in pandas 的数据库

 index     win  loss  moneywin  moneyloss
player1     5     1       300        100
player2    10     5       650        150
player3    17     6      1100       1050
player11  1010   105     10650      10150
player23  1017   106    101100     101050
Run Code Online (Sandbox Code Playgroud)

我想将 list1 的元素添加到 db 的元素中

list1 = [[player1,105,101,10300,10100],[player3,17,6,1100,1050]]
Run Code Online (Sandbox Code Playgroud)

所以结果将是 db2

index     win   loss   moneywin  moneyloss
player1   110    102   10600      10200
player2    10     5     650         150
player3    34     12    2200       2100
player11  1010   105   10650      10150
player23  1017   106   101100    101050
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Shu*_*rma 2

解决方案一:

使用给定的数据帧创建一个数据帧,list1然后使用concat分组index并聚合剩余的列sum

df1 = pd.DataFrame(list1, columns=df.columns)
df_out = pd.concat([df, df1]).groupby('index', sort=False).sum()
Run Code Online (Sandbox Code Playgroud)

解决方案2:

list1然后add使用通用的给定数据帧创建一个数据帧index

df1 = pd.DataFrame(list1, columns=df.columns)
df_out = df.set_index('index').add(df1.set_index('index'), fill_value=0)
Run Code Online (Sandbox Code Playgroud)

结果:

print(df_out)

           win  loss  moneywin  moneyloss
index                                    
player1    110   102     10600      10200
player2     10     5       650        150
player3     34    12      2200       2100
player11  1010   105     10650      10150
player23  1017   106    101100     101050
Run Code Online (Sandbox Code Playgroud)