我有两个如下所示的数据框
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。
我尝试查找但失败,寻求您的帮助。
答案 0 :(得分:2)
使用DataFrame.pivot
,然后用DataFrame.fillna
或DataFrame.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)