如果没有条件,如何处理丢失的数据?

时间:2018-08-17 09:54:46

标签: python pandas if-statement missing-data nonetype

如果缺少age的值,我想创建一个值为1的变量。相反,所有内容都是None列的输出中的Value

raw_data1 = {'id': [1,2,3,5],
    'age': [0, np.nan, 10, 2]}
df1 = pd.DataFrame(raw_data1, columns = ['id','age'])


def my_test(b):
    if b is None:
        return 1


df1['Value'] = df1.apply(lambda row: my_test(row['age']), axis=1)  

如何实施?我知道有几种方法,但是我想重点介绍函数的使用(def my_test等)。

4 个答案:

答案 0 :(得分:3)

如果我对您的理解正确,则可以使用:

df1['value'] = np.where(df1['age'].isnull(), 1, '')

输出:

   id   age value
0   1   0.0      
1   2   NaN     1
2   3  10.0      
3   5   2.0      

答案 1 :(得分:0)

您可以为此使用map

df1['Value'] = df1['age'].map(lambda x : 1 if np.isnan(x) else np.nan)

如果您想使用自己的功能,可以像这样使用map

def my_test(b):
    if np.isnan(b):
        return 1
    else:
        return np.nan

df1['Value'] = df1['age'].map(lambda x : my_test(x))

答案 2 :(得分:0)

您可以使用row.get('age')代替row['age']

如果get()不在字典中,则

age返回null

答案 3 :(得分:0)

相反,

>>> df1.value = df1.age.isna().astype(int)
>>> df1
    id   age  value
 0   1   0.0      0
 1   2   NaN      1
 2   3  10.0      0
 3   5   2.0      0