根据另一个数据框的值填充一个数据框的值

时间:2020-09-29 08:01:03

标签: python pandas dataframe nan

我有两个如下所示的数据框

df1 = 
    date       balance    month    year    day     month_year
0   2019-10-07   0.0        10     2019      7    October-2019
1   2019-10-08   0.0        10     2019      8    October-2019
2   2019-10-09   0.0        10     2019      9    October-2019
3   2019-10-10   0.0        10     2019     10    October-2019
4   2019-10-11   0.0        10     2019     11    October-2019

我必须填写的数据框值:

df2 = 
day October-2019    November-2019   December-2019   January-2020    February-2020   March-2020  April-2020
 1      NaN             NaN              NaN              NaN          NaN          NaN           NaN
 2      NaN             NaN              NaN              NaN          NaN          NaN           NaN
 3      NaN             NaN              NaN              NaN          NaN          NaN           NaN
 ..     ...             ...              ...              ...          ...          ...           ...
 31     NaN             NaN              NaN              NaN          NaN          NaN           NaN

我必须根据df1中的“ month_year”和“ day”值,用df1中的“ balance”值填充df2以上的NaN。

我尝试查找但失败,寻求您的帮助。

1 个答案:

答案 0 :(得分:2)

使用DataFrame.pivot,然后用DataFrame.fillnaDataFrame.combine_first替换缺失的值:

df11 = df1.pivot('day','month_year','balance')
df2 = df2.fillna(df11)

df11 = df1.pivot('day','month_year','balance')
df2 = df2.combine_first(df11)