python-3.x - Python:Pandas 模块 - 在数据框中填充 NaN(空值)的嵌套 IF 语句
问题描述
我创建了一个函数,该函数在给定“名称”列中的数据的情况下测试多个 IF 语句。
标准 1:如果 'Name' 为空,则返回 'Secondary_Name'。但是,如果“Secondary_Name”也为空,则返回“Third_Name”。
标准 2:如果 'Name' == 'GENERAL',则返回 'Secondary_Name'。但是,如果“Secondary_Name”也为空,则返回“Third_Name”
其他:返回“名称”
def account_name(row):
if row['Name'] == None and row['Secondary_Name'] == None:
return row['Third_Name']
elif row['Name'] == 'GENERAL':
if row['Secondary_Name'] == None:
return row['Third_Name']
else:
return row['Name']
我试过 == None,== np.NaN,== Null,.isnull(),== '',== '0'。
似乎没有什么可以将空值替换为我想要的。
编辑:
解决方案
根据列 dtype,无论出于何种原因,NULL 都不能与 NaN 很好地交互。None 表示该字段为空白,这不是因为您对给定的 dtype 具有“值”。
确保您可以识别 NaN 的简单方法是查看该字段是否等于自身
def isNaN(value):
if value != value:
return True
else:
return False
并提供一个例子:
df = pd.DataFrame(data={'ClientId':[1,2,3,4] , 'SomeNULLs':['main','main',None,None], 'NewNULLs':[1,None,0,1]})
df['Test'] = df.NewNULLs.apply(isNaN)
结果数据集应该是
ClientId SomeNULLs NewNULLs Test
0 1 main 1.0 False
1 2 main NaN True
2 3 None 0.0 False
3 4 None 1.0 False
推荐阅读
- c# - 如何创建脚本以相对于当前鼠标位置以 45 度角自动移动鼠标
- symfony - 使用 Doctrine 的 QueryBuilder 获取具有最少产品数量的类别
- python-3.x - 在 Tkinter 中裁剪图像的多个部分并放置在画布上
- javascript - ReactJS - 使用事件渲染外部 DOM 元素
- r - 在 R 中可视化大型面板数据
- python - 如何处理由于学生在神经网络中的能力分组而被标记为“0”的学校成绩?
- java - 如何在没有名为 AppData 的文件夹的 64 位 Windows 上安装 java 1.1?
- python - python中循环的输出是什么?
- node.js - 审核日志消息 Discord JS
- python - Selenium Chrome:加载配置文件并更改下载文件夹 - Python