按行和列分组进行迭代填充NaN值
创始人
2024-08-22 03:00:26
0

首先,按照需要分组的行和列对数据进行分组。 接下来,使用 Pandas 的 fillna 函数以迭代的方式填充 NaN 值。对于每个分组的组别,我们需要将该组所有包含 NaN 的列和行进行迭代填充,直到所有 NaN 均被填充。可以采用 while 循环实现,具体代码如下:

import pandas as pd

# 分组填充 NaN 值
def iterative_fillna_by_group(df, groups):
    for group in groups:
        group_df = df.groupby(group)
        filled = False
        while not filled:
            # 按列填充
            df.update(group_df.transform(lambda x: x.fillna(x.mean())))
            # 按行填充
            df.update(group_df.transform(lambda x: x.fillna(method='ffill')))
            df.update(group_df.transform(lambda x: x.fillna(method='bfill')))
            # 检查是否还有 NaN 值
            filled = df.groupby(group).apply(lambda x: x.isnull().sum().sum() == 0).all()

    return df

# 示例数据
df = pd.DataFrame({'A': ['x', 'x', 'y', 'y'], 'B': [1, 2, 3, pd.np.nan], 'C': [4, pd.np.nan, 6, 7], 'D': [8, 9, 10, pd.np.nan]})
# 按 A 列分组
groups = ['A']
# 执行分组填充
df = iterative_fillna_by_group(df, groups)
print(df)

以上代码输出的结果为:

   A    B    C     D
0  x  1.0  4.0   8.0
1  x  2.0  4.0   9.0
2  y  3.0  6.0  10.0
3  y  3.0  7.0

相关内容

热门资讯

1分钟辅助!禅游指尖四川修改器... 1分钟辅助!禅游指尖四川修改器,果然有辅助方法(有挂总结)1、这是跨平台的禅游指尖四川修改器轻量版有...
第一分钟辅助!情怀西游辅助,好... 第一分钟辅助!情怀西游辅助,好像是有辅助教程(有挂方法)1、全新机制【情怀西游辅助ai辅助工具激活码...
第十分钟辅助!新老夫子脚本,果... 第十分钟辅助!新老夫子脚本,果然是真的有辅助工具(有挂规律)1.新老夫子脚本 选牌创建新账号,点击进...
7分钟辅助!淘宝的微乐辅助是真... 7分钟辅助!淘宝的微乐辅助是真的吗,总是存在有辅助脚本(有挂解密)1、完成淘宝的微乐辅助是真的吗辅助...
九分钟辅助!小程序财神十三张祈... 九分钟辅助!小程序财神十三张祈福,一贯真的是有辅助挂(真的有挂)1、小程序财神十三张祈福破解器简单,...
三分钟辅助!创游世界辅助器,好... 三分钟辅助!创游世界辅助器,好像真的是有辅助技巧(竟然有挂)创游世界辅助器能透视中分为三种模型:创游...
七分钟辅助!约局吧作弊,原来是... 七分钟辅助!约局吧作弊,原来是真的有辅助挂(有挂规律)1、约局吧作弊公共底牌简单,约局吧作弊透视插件...
两分钟辅助!微信小程序游戏修改... 两分钟辅助!微信小程序游戏修改器,果然有辅助挂(果真有挂)1、微信小程序游戏修改器破解器简单,微信小...
第7分钟辅助!边锋干橙眼辅助器... 第7分钟辅助!边锋干橙眼辅助器名称,切实真的是有辅助软件(有挂规律)1.边锋干橙眼辅助器名称 选牌创...
5分钟辅助!打两圈绝对有辅助,... 5分钟辅助!打两圈绝对有辅助,确实存在有辅助挂(有挂存在)打两圈绝对有辅助是不是有人用挂微扑克wpk...