Python如何获取pandas DataFrame中Name列为NA值对应的ID列值
最简实现方案
直接使用pandas布尔索引即可一行完成需求,无需手动遍历循环:
# 直接获取Name列为空的行对应的ID列,返回Series格式 na_id_series = dfA.loc[dfA['Name'].isna(), 'ID'] # 如果需要转为Python列表格式,追加.tolist()即可 na_id_list = dfA.loc[dfA['Name'].isna(), 'ID'].tolist()
运行后na_id_list的结果为['120', '99'],和示例dfA中的空值行完全匹配。
代码说明
dfA['Name'].isna():生成和dfA行数一致的布尔序列,Name列取值为NaN的位置返回True,其余返回Falseloc索引器第一个参数传入行筛选条件,第二个参数指定要提取的列名,直接命中目标数据- 该方法是pandas原生向量化操作,相比for循环遍历的写法代码更简洁,数据量较大时执行效率也会高很多。
内容的提问来源于stack exchange,提问作者blackCAt
相关产品推荐
相关产品推荐

