Pandas groupby 然后填充缺失的行

我有一个这样结构的数据框:


df_all:


      day_time            LCLid       energy(kWh/hh)

2014-02-08 23:00:00     MAC000006         0.077

2014-02-08 23:30:00     MAC000006         0.079

        ...

2014-02-08 23:00:00     MAC000007         0.045

        ...

我想用先前和尾随值填充的数据中缺少四个连续的日期时间(跨所有 LCLid)。


如果数据帧被拆分为子数据帧 (df),每个 LCLid 一个,例如:


gb = df.groupby('LCLid')    

df_list = [gb.get_group(x) for x in gb.groups]

然后我可以为 df_list 中的每个 df 执行此操作:


#valid data before gap

prev_row = df.loc['2013-09-09 22:30:00'].copy()

#valid data after gap

post_row = df.loc['2013-09-10 01:00:00'].copy()

df.loc[pd.to_datetime('2013-09-09 23:00:00')] = prev_row

df.loc[pd.to_datetime('2013-09-09 23:30:00')] = prev_row

df.loc[pd.to_datetime('2013-09-10 00:00:00')] = post_row

df.loc[pd.to_datetime('2013-09-10 00:30:00')] = post_row


df = df.sort_index()

我怎样才能在 df_all 上做到这一点,一次又一次地用来自每个 LCLid 的“有效”数据填充缺失的数据?


手掌心
浏览 287回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python