使用第二个索引级别的最后一个可用值来估算多索引数据框中的缺失值

问题描述 投票:0回答:1

我正在努力解决以下问题: 我有以下结构的时间序列数据的多级索引数据框:

import pandas as pd
import numpy as np

multi_index = pd.MultiIndex.from_tuples([('2022-02-18', '2022-02-17'),
                                        ('2022-02-19', '2022-02-17'),
                                        ('2022-02-20', '2022-02-17'),
                                        ('2022-02-21', '2022-02-17'),
                                        ('2022-02-19', '2022-02-18'),
                                        ('2022-02-20', '2022-02-18'),
                                        ('2022-02-21', '2022-02-18'),
                                        ('2022-02-22', '2022-02-18'),
                                        ('2022-02-20', '2022-02-19'),
                                        ('2022-02-21', '2022-02-19'),
                                        ('2022-02-22', '2022-02-19'),
                                        ('2022-02-23', '2022-02-19'),],
                                       names=['date1','date2'])

data = [[45, 365], 
        [91, 254], 
        [60, 268], 
        [57, 781], 
        [68, 236], 
        [36, np.nan], 
        [87, 731], 
        [12, 452], 
        [np.nan, 214], 
        [33, 654], 
        [74, 113], 
        [65, 381]]

df = pd.DataFrame(data, columns=['value1', 'value2'], index = multi_index)

df 如下表所示:

约会1 约会2 值1 值2
2022-02-18 2022-02-17 45 365
2022-02-19 2022-02-17 91 254
2022-02-20 2022-02-17 60 268
2022-02-21 2022-02-17 57 781
2022-02-19 2022-02-18 68 236
2022-02-20 2022-02-18 36
2022-02-21 2022-02-18 87 731
2022-02-22 2022-02-18 12 452
2022-02-20 2022-02-19 214
2022-02-21 2022-02-19 33 654
2022-02-22 2022-02-19 74 113
2022-02-23 2022-02-19 65 381

date1 和date2 是多索引。我想用 date2 中的最后一个可用值来估算表中的缺失值。因此,在这种情况下,value1 为 36,value2 为 268,因为我希望估算值的 date1 相同,而 date2 我想采用最后一个可用值。

我尝试用 pandas 方法 fillna() 进行估算,并尝试了超参数“方法”的不同变体,但似乎没有什么是解决我的问题的合适方法。

pandas dataframe missing-data multi-index imputation
1个回答
0
投票

这应该给你你所描述的:

df.groupby('date1').ffill()
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.