为何Pandas DataFrame索引会出现在查询结果中?如何解决?
问题解析与解决办法
为什么第二种方法会附带索引?
claims.loc[claims['ClaimID'] == 29395]['ClaimID']返回的是一个Pandas Series对象,Series本身会保留原始DataFrame的行索引信息,所以输出时会同时显示索引和对应的ClaimID值。而第一种方法claims.iloc[18504]['ClaimID']是先通过位置索引定位到单行(返回一个Series),再提取ClaimID字段,此时得到的是单个标量值,自然不会显示索引。
修正方法(几种常用方式)
- 用
.item()提取单个值(适合确定只有一个匹配结果的场景,无匹配或多匹配会报错):print(claims.loc[claims['ClaimID'] == 29395]['ClaimID'].item()) - 用
.iloc[0]取Series的第一个元素:print(claims.loc[claims['ClaimID'] == 29395]['ClaimID'].iloc[0]) - 用
.values[0]直接取数组中的第一个元素:print(claims.loc[claims['ClaimID'] == 29395]['ClaimID'].values[0])
内容的提问来源于stack exchange,提问作者huski1018
相关产品推荐
相关产品推荐

