为几个组填充缺失的日期和值

2024-05-29 05:25:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的数据帧:

    province    date        D I R C
360 Incheon     2020-01-20  0 0 1 1
455 Seoul       2020-01-23  0 0 1 1
183 Gyeonggi-do 2020-01-26  0 0 1 1
184 Gyeonggi-do 2020-01-27  0 0 2 2
456 Seoul       2020-01-30  0 0 4 4

我需要的是,在第一次之后的每一天(本例中为2020-01-20),我都有每个省的“最后一次看到的行”,以防该日期没有更新。因此,在我的示例中,我希望作为结果df:

    province    date        D I R C
1   Incheon     2020-01-20  0 0 1 1

2   Incheon     2020-01-23  0 0 1 1
3   Seoul       2020-01-23  0 0 1 1

4   Gyeonggi-do 2020-01-26  0 0 1 1
5   Incheon     2020-01-26  0 0 1 1
6   Seoul       2020-01-26  0 0 1 1

7   Gyeonggi-do 2020-01-27  0 0 2 2
8   Incheon     2020-01-27  0 0 1 1
9   Seoul       2020-01-27  0 0 1 1

10  Seoul       2020-01-30  0 0 4 4
11  Gyeonggi-do 2020-01-30  0 0 2 2
12  Incheon     2020-01-30  0 0 1 1

我尝试过可以看到的herehere、和here,但略有不同。我的目标是使用plotly绘制一个带时间的条形图,我现在可以,但是对于每个省份没有任何更新的日期,即没有数据,条形图就会消失,我需要它保持不变

谢谢你的帮助


Tags: 数据示例目标dfdatehere绘制plotly
1条回答
网友
1楼 · 发布于 2024-05-29 05:25:21

您可以使用set_indexreindexunique省和日期的所有组合中使用MultiiIndex.from_product,然后使用groupby省和ffilldropna删除每个省第一次出现之前的日期,sort_index每个日期(如有必要)和reset_index,如:

(df.set_index(['province', 'date'])
   .reindex(pd.MultiIndex.from_product([df['province'].unique(), df['date'].unique()], 
                                       names=['province', 'date']))
   .groupby(level='province').ffill()
   .dropna()
   .sort_index(level='date')
   .reset_index()
)
       province        date    D    I    R    C
0       Incheon  2020-01-20  0.0  0.0  1.0  1.0
1       Incheon  2020-01-23  0.0  0.0  1.0  1.0
2         Seoul  2020-01-23  0.0  0.0  1.0  1.0
3   Gyeonggi-do  2020-01-26  0.0  0.0  1.0  1.0
4       Incheon  2020-01-26  0.0  0.0  1.0  1.0
5         Seoul  2020-01-26  0.0  0.0  1.0  1.0
6   Gyeonggi-do  2020-01-27  0.0  0.0  2.0  2.0
7       Incheon  2020-01-27  0.0  0.0  1.0  1.0
8         Seoul  2020-01-27  0.0  0.0  1.0  1.0
9   Gyeonggi-do  2020-01-30  0.0  0.0  2.0  2.0
10      Incheon  2020-01-30  0.0  0.0  1.0  1.0
11        Seoul  2020-01-30  0.0  0.0  4.0  4.0

相关问题 更多 >

    热门问题