Python中如何提取对象的单个值?Pandas过滤后如何获取标量结果
你之前的代码返回的是带索引的Pandas Series对象,而非单个标量值,调用.all()是判断序列中所有值是否为真值,筛选出的非空字符串会返回True,自然不符合需求。
你可以通过以下几种方式获取目标标量值:
- 用
iloc取序列第一个元素(确认仅一个匹配结果时可用)
dflist["id"].loc[dflist['symbol'] == "btc"].iloc[0]
- 用
values转成numpy数组后取第一个元素
dflist["id"].loc[dflist['symbol'] == "btc"].values[0]
- 用
item()方法直接提取标量(Pandas 0.23+版本支持)
dflist["id"].loc[dflist['symbol'] == "btc"].item()
如果不确定匹配结果数量,可先执行len(dflist[dflist['symbol'] == "btc"])确认匹配行数为1后再取值,避免索引报错。
内容的提问来源于stack exchange,提问作者bbbbblock
相关产品推荐
相关产品推荐

