用另一个数据框中的值替换一个数据框中的值

时间:2020-08-22 14:32:21

标签: python pandas dataframe replace

我正在做英超联赛的硕士学位论文,我有问题。

>Chelsea
 Attacking duo HT     Attacking duo AT     HomeTeam    AwayTeam        
   X                     Yes               Liverpool   Chelsea 
   No                     X                Chelsea     Manchester Utd
   X                     No                Arsenal     Chelsea
   No                     X                Chelsea     Norwich

>Liverpool
 Attacking duo HT     Attacking duo AT     HomeTeam    AwayTeam        
   No                     X                Liverpool   Manchester City
   X                     Yes               Burnley     Liverpool
   No                     X                Liverpool   Chelsea
   X                     Yes               Arsenal     Liverpool

在此示例中,我想知道如何用利物浦数据帧的第三行中的相应值(“否”)替换切尔西数据帧的第一行中的Chelsea X值

1 个答案:

答案 0 :(得分:0)

您可以使用df.update用来自另一个df的NaN s替换non-NAN

首先将X更改为NaN,然后将HomeTeam-AwayTeam设置为索引

import numpy as np # if you haven't already

for df in (Chelsea, Liverpool):
    (df
        .replace('X', np.nan, inplace=True)
        .set_index(['HomeTeam', 'AwayTeam'], inplace=True) # so pandas can align the rows the way we need them
    )

现在您可以update

Chelsea.update(Liverpool)