【问题标题】:Pandas Error while converting Boolean Values into actual values [duplicate]将布尔值转换为实际值时出现熊猫错误[重复]
【发布时间】:2019-07-04 12:52:12
【问题描述】:

在 python 中对我的 excel 数据执行少量分析时。我在运行代码以根据我的参数获取少量数据时遇到错误

我有一个 Excel 文件,它被用作 Python pandas 的源代码。在 excel 中,我们有一个名为“摘要”的列,其中我需要获取那些开始/包含“FW:”的摘要的记录

代码对我来说看起来很完美,我确实运行了代码并得到了布尔值的输出。将布尔值转换为完整记录时。我遇到了一个错误。

import pandas as pd
import numpy as np
data = pd.read_excel('Desktop/VGCS06.xlsx)
data['Summary'].str.contains('FW:')

上述输出为布尔值,其中很少有 False 后跟 True。

data[data['Summary].str.contains('FW:')]

上述代码出错


ValueError Traceback(最近一次调用最后一次) 在 ----> 1 个数据[data['Summary'].str.contains('FW:')]

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in getitem(self, key) 2680 if isinstance(key, (Series, np.ndarray, Index, list)): 第2681章 -> 2682 返回 self._getitem_array(key) 第2683章 第2684章

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in _getitem_array(self, key) 第2707章 2708 # 如果对象数组具有 NA 值,也会引发异常 -> 2709 如果 com.is_bool_indexer(key): 2710 # 在此发出警告以防万一 -- 以前 setitem 是 2711 # 重新索引,但 getitem 没有;似乎更合理

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\common.py in is_bool_indexer(key) 105 如果不是 lib.is_bool_array(key): 106 如果 isna(key).any(): --> 107 raise ValueError('cannot index with vector contains ' 108 'NA / NaN 值') 109 返回错误

ValueError: 无法使用包含 NA / NaN 值的向量进行索引

【问题讨论】:

  • 使用:data[data['Summary].str.contains('FW:',na=False)]

标签: python pandas jupyter-notebook


【解决方案1】:

那是因为你在列中有np.nan

data=pd.DataFrame({'Summary':['FW:','','FW:',np.nan]})
data[data['Summary'].str.contains('FW:').fillna(False)]
  Summary
0     FW:
2     FW:

更多信息,str.contains 将在原始数据为NaN 时返回NaN

data['Summary'].str.contains('FW:')
0     True
1    False
2     True
3      NaN
Name: Summary, dtype: object

anky_91 推荐

data['Summary'].str.contains('FW:',na=False)

【讨论】:

  • 我们可以在str.contains() 中指定na=False,这样会更直接。 :)
  • @anky_91 你是对的
  • 宾果游戏,成功了,太棒了:)
  • @SiddharthSureshNayak 如果这是工作,你愿意接受吗?左侧的复选标记
猜你喜欢
  • 2021-03-06
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
  • 2020-11-27
  • 1970-01-01
  • 2011-01-13
相关资源
最近更新 更多