python - 函数中的缺失值条件 Pandas
问题描述
我想要一个函数,如果 area 列缺少值(如 SQL 中的 NULL),则目标“wanted”变量中的结果为“A”。
我对在 Python 中使用 None、isnull()、np.nan 概念感到困惑
raw_data = {'area': ['S','W',np.nan,np.nan], 'wanted': [np.nan,np.nan,'A','A']}
df = pd.DataFrame(raw_data, columns = ['area','wanted'])
df
def my_func(x):
if (x) is None:
return 'A'
else:
return np.nan
df['wanted2'] = df['area'].apply(my_func)
df
解决方案
np.nan
不等于None
,事实上也不NaN
等于NaN
(check np.nan == None
),因此您可以pd.isna()
在 if 条件中使用:
def my_func(x):
if pd.isna(x):
return 'A'
else:
return np.nan
df['wanted2'] = df['area'].apply(my_func)
但是您可以使用np.where
而series.isna()
不是使用矢量化它apply
df['wanted2'] = np.where(df['area'].isna(),'A',np.nan)
推荐阅读
- mercurial - Mercurial:由于解析错误,无法编辑配置文件
- javascript - 带有 pouchdb 事件处理程序的 await 的语法是什么?
- javascript - Vuetify 中 v-checkbox 元素过大的问题
- javascript - JSON排序输出
- javascript - 如何使由 javascript 生成的对象居中?
- python - Django从url获取属性到过滤器
- c - 如何使用C通过视频内存绘制像素?
- python - 我需要创建一个新列,该列针对其他两个列值枚举每一行
- c# - 删除 DataGrid 的标题边框
- javascript - 向数组添加键,然后组合(有更好的方法吗?)