繁体   English   中英

如何使用循环 python 中的 label 缺失值

[英]How to label missing values in python using loop

这是我的 Dataframe

from cmath import nan


student_card = pd.DataFrame({'ID':[20190103, 20190222, 20190531],
                             'name':['Kim', nan, nan],
                             'class':['H', 'W', 'S']})
student_card

看起来像这样

在此处输入图像描述

所以'name'列中有两个NaN值,我想使用循环将它们填充为'missing1','missing2'(idk不使用循环但不知道如何在没有循环的情况下对它们进行索引)

所以我做了这个 function 并被困在这里。 不行,求大神帮忙,谢谢

import pandas as pd

def fillna_func(df):
    df = df.copy()
    for i, value in enumerate(df.values):
        if value == nan:
            df[i].apply("deleted{}".format(i))
    return df


fillna_func(student_card['name'])

您可以创建一个名称为 null 的掩码,并以此过滤主 dataframe。 然后使用缺失值的累积和更新这些名称。

import numpy as np
import pandas as pd
student_card = pd.DataFrame({'ID':[20190103, 20190222, 20190531],
                             'name':['Kim', np.nan, np.nan],
                             'class':['H', 'W', 'S']})

def fillna_func(df):
    m = df.name.isnull()
    df.loc[m, 'name'] = 'missing' + m.cumsum().astype(str)
    return df

fillna_func(student_card)

Output

         ID      name class
0  20190103       Kim     H
1  20190222  missing1     W
2  20190531  missing2     S

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM