Combine_first和Ffill用于baseDf,而fillna用于AdditionalDf

时间:2019-02-19 16:45:53

标签: python pandas

我需要先将baseDf和AdditionalDf与熊猫结合起来。 如何将ffill()用于baseDf,如何将fillna(-1)用于第二个?


例如: baseDf:

   qty total
1   10    10
2    5    15
4    4    19
6    8    27
8    2    29

additionalDf:

     val
3    400
5    150
7     60

我想要得到的是:

   qty total   val
1   10    10    -1
2    5    15    -1
3    5    15   400
4    4    19    -1
5    4    19   150
6    8    27    -1
7    8    27    60
8    2    29    -1

但是如果我写:

baseDf.combine_first(additionalDf).ffill().fillna(-1)

我得到:

   qty total   val
1   10    10    -1
2    5    15    -1
3    5    15   400
4    4    19   400
5    4    19   150
6    8    27   150
7    8    27    60
8    2    29    60

谢谢!

1 个答案:

答案 0 :(得分:3)

只需更改fillnafffill的位置

baseDf.combine_first(additionalDf).fillna({'val':-1}).ffill()
Out[360]: 
    qty  total    val
1  10.0   10.0   -1.0
2   5.0   15.0   -1.0
3   5.0   15.0  400.0
4   4.0   19.0   -1.0
5   4.0   19.0  150.0
6   8.0   27.0   -1.0
7   8.0   27.0   60.0
8   2.0   29.0   -1.0