![](/img/trans.png)
[英]pandas Dataframe Replace NaN values with with previous value based on a key column
[英]pandas - Update only specific DataFrame column values based on a 'key' value
我有以下兩個DataFrame,
stats
:
player_id player_name gp ab run hit
28920 S. Smith 1 2 1 3
33351 T. Mancini 0 0 0 0
30267 C. Gentry 0 0 0 0
34885 H. Kim 1 0 0 0
31988 J. Schoop 0 0 0 0
5908 J.J. Hardy 1 3 0 0
和game
:
player_id player_name gp ab run hit
28920 S. Smith 1 4 1 1
33351 T. Mancini 1 1 0 1
34885 H. Kim 1 1 2 0
5908 J.J. Hardy 1 4 0 0
我只想根據player_id
更新上一個游戲中一直活躍的玩家的統計信息,以便最終統計數據DataFrame如下所示:
player_id player_name gp ab run hit
28920 S. Smith 2 6 2 4
33351 T. Mancini 1 1 0 1
30267 C. Gentry 0 0 0 0
34885 H. Kim 2 1 2 0
31988 J. Schoop 0 0 0 0
5908 J.J. Hardy 2 7 0 0
感謝您的時間和幫助!
您可以使用set_index
進行update
stats=stats.set_index(['player_id','player_name'])
game=game.set_index(['player_id','player_name'])
stats.update(game)
stats = stats.astype(int).reset_index()
stats
Out[452]:
player_id player_name gp ab run hit
0 28920 S.Smith 1 4 1 1
1 33351 T.Mancini 1 1 0 1
2 30267 C.Gentry 0 0 0 0
3 34885 H.Kim 1 1 2 0
4 31988 J.Schoop 0 0 0 0
5 5908 J.J.Hardy 1 4 0 0
由於您使用add
更新問題
#stats=stats.set_index(['player_id','player_name'])
#game=game.set_index(['player_id','player_name'])
stats.add(game,fill_value=0).astype(int).reset_index()
Out[460]:
player_id player_name gp ab run hit
0 5908 J.J.Hardy 2 7 0 0
1 28920 S.Smith 2 6 2 4
2 30267 C.Gentry 0 0 0 0
3 31988 J.Schoop 0 0 0 0
4 33351 T.Mancini 1 1 0 1
5 34885 H.Kim 2 1 2 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.