微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 groupby 和重新索引之后向前填充特定列

如何解决在 groupby 和重新索引之后向前填充特定列

我想用该组中的“id”填充一个特定列,即“id”列,并在应用分组重新索引后用 0 向前填充其他列。

我当前使用 0 填充所有缺失值的版本如下所示:

def reindex_by_date(df):
    bd = pd.bdate_range('2000-12-18','2020-12-31')
    return df.reindex(bd)
test.groupby('id').apply(reindex_by_date).reset_index(0,drop=True)

但我无法在该组中用 id 填充“id”

解决方法

我找到了解决方案。发布所以也许它会帮助其他人:

def reindex_by_date(df):
    df = df.reindex(pd.bdate_range('2000-12-18','2020-12-31'))
    df['id']=df['id'].ffill().bfill()
    df['weight'] = df['weight'].fillna(0)
    df['return'] = df['return'].fillna(0)
    return (df)

test_new= test.groupby('id').apply(reindex_by_date).rename_axis(('id','date')).drop('id',1).reset_index()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。