我有以下 DataFrame 有一些缺失值。我想用ffill()兩個來填補缺失值var1,并var2通過分組date和building。我可以一次為一個變量執行此操作,但是當我嘗試為兩個變量執行此操作時,它會崩潰。我怎樣才能同時對兩個變量執行此操作,同時也不修改但保留var3或var4?df = pd.DataFrame({ 'date': ['2019-01-01','2019-01-01','2019-01-01','2019-01-01','2019-02-01','2019-02-01','2019-02-01','2019-02-01'], 'building': ['a', 'a', 'b', 'b', 'a', 'a', 'b', 'b'], 'var1': [1.5, np.nan, 2.1, 2.2, 1.2, 1.3, 2.4, np.nan], 'var2': [100, 110, 105, np.nan, 102, np.nan, 103, 107], 'var3': [10, 11, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan], 'var4': [1, 2, 3, 4, 5, 6, 7, 8]})df date building var1 var2 var3 var40 2019-01-01 a 1.5 100.0 10.0 11 2019-01-01 a NaN 110.0 11.0 22 2019-01-01 b 2.1 105.0 NaN 33 2019-01-01 b 2.2 NaN NaN 44 2019-02-01 a 1.2 102.0 NaN 55 2019-02-01 a 1.3 NaN NaN 66 2019-02-01 b 2.4 103.0 NaN 77 2019-02-01 b NaN 107.0 NaN 8# This worksdf['var1'] = df.groupby(['date', 'building'])['var1'].ffill()df['var2'] = df.groupby(['date', 'building'])['var2'].ffill()df date building var1 var2 var3 var40 2019-01-01 a 1.5 100.0 10.0 11 2019-01-01 a 1.5 110.0 11.0 22 2019-01-01 b 2.1 105.0 NaN 33 2019-01-01 b 2.2 105.0 NaN 44 2019-02-01 a 1.2 102.0 NaN 55 2019-02-01 a 1.3 102.0 NaN 66 2019-02-01 b 2.4 103.0 NaN 77 2019-02-01 b 2.4 107.0 NaN 8# This doesn't workdf[['var1', 'var2']] = df.groupby(['date', 'building'])[['var1', 'var2']].ffill()ValueError: Columns must be same length as key
查看完整描述