2017-09-02 43 views
0

我有以下DF:如何用不同数量的行替换另一列的值?

df= 
       A  B C 
2016-04-16  3  2 2 
2016-04-17  4  4 1 
2016-04-18  7  3 1 
2016-04-19  5  1 3 
2016-04-20  5  1 7 

在另一方面我有一个重新计算的柱(用4行而不是5):

df1= 
       C 
2016-04-16  3.2 
2016-04-17  4.7 
2016-04-18  7.1 
2016-04-19  3.3 

我怎样可以代替重新计算列为原始df获取以下输出?

df= 
       A  B C 
2016-04-16  3  2 3.2 
2016-04-17  4  4 4.7 
2016-04-18  7  3 7.1 
2016-04-19  5  1 3.3 
2016-04-20  5  1 7 

回答

2

下面是使用combine_first

In [1327]: df.assign(C=df1.C.combine_first(df.C)) 
Out[1327]: 
      A B C 
2016-04-16 3 2 3.2 
2016-04-17 4 4 4.7 
2016-04-18 7 3 7.1 
2016-04-19 5 1 3.3 
2016-04-20 5 1 7.0 

或者,一个方法

In [1331]: df1.combine_first(df) 
Out[1331]: 
       A B C 
2016-04-16 3.0 2.0 3.2 
2016-04-17 4.0 4.0 4.7 
2016-04-18 7.0 3.0 7.1 
2016-04-19 5.0 1.0 3.3 
2016-04-20 5.0 1.0 7.0 
相关问题