Python 如果条件为“无”,如何处理丢失的数据?
如果缺少Python 如果条件为“无”,如何处理丢失的数据?,python,pandas,if-statement,missing-data,nonetype,Python,Pandas,If Statement,Missing Data,Nonetype,如果缺少age的值,我想创建一个值为1的变量。相反,在Value列的输出中,所有内容都是None 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
age
的值,我想创建一个值为1
的变量。相反,在Value
列的输出中,所有内容都是None
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)
如何实施?我知道有几种方法,但我想重点介绍函数的使用(
defmy_test
等) 如果我理解正确,您可以使用:
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
您可以为此使用
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))
您可以使用row.get('age')
而不是row['age']
如果age
不在dict中,则get()
返回null
>>> 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
如果
b
不是None
,则my\u test
方法将返回None
。在if
后面添加返回b
应该可以解决这个问题。你的意思是这样吗?如果返回b为无:(这不起作用,谢谢)