You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使Pandas.loc()对不存在的索引返回NaN值?

解决方案

要实现指定索引列表取值,让不存在的索引对应行返回NaN,最直接的方式是使用reindex()方法——它专门用于处理索引重排与缺失值填充:

完整代码示例

import pandas as pd

# 构造原DataFrame
ind, l1, l2 = [0,1,0], [1,1,0], [0,0,1]
df = pd.DataFrame([ind, l1, l2], columns=[['C1','C2','C3']])
df.index = ['A','C','E']  # 原代码的双层索引可简化为单层,不影响结果

# 指定目标索引列表,生成包含缺失索引行的新DataFrame
target_index = ['A','B','C','D','E']
result_df = df.reindex(target_index)

print(result_df)

输出结果

C1   C2   C3
A  0.0  1.0  0.0
B  NaN  NaN  NaN
C  1.0  1.0  0.0
D  NaN  NaN  NaN
E  0.0  0.0  1.0

补充说明

如果坚持要用loc语法,也可以直接传入目标索引的pd.Index对象,同样会自动为不存在的索引填充NaN:

target_idx = pd.Index(['A','B','C','D','E'])
result_df = df.loc[target_idx]

不过reindex()的语义更明确,更适配这类索引重排、缺失值填充的场景。

内容的提问来源于stack exchange,提问作者Yash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:55:09