我有一个名为DataFrame
的{{1}},其列df
包含值col
,True
和False
(类型为{{1 }},"N/A"
和bool
)。我只想选择包含bool
的行。
str
有效,但生成警告True
。
是否有符合PEP8的方法?
答案 0 :(得分:1)
之前曾提出过类似的问题,例如pandas: Do I have to deviate from style conventions (PEP 8)?,但是它们都描述了一个简单的情况,其中您只有一列True
和False
值。在这种情况下,您只需做df[df.col]
。
在您的情况下,您不能执行此操作,因为它会产生错误,但是您还有其他选择:
使用pd.Series.eq
:
>>> df = pd.DataFrame({'col': [True, False, 'N/A']})
>>> df[df.col.eq(True)]
col
0 True
首先检查"N/A"
,然后比较True
剩下的内容。订单事项:
>>> df[(df.col != 'N/A') & df.col]
col
0 True
用"N/A"
代替np.nan
并使用pd.Series.notnull
或pd.Series.notna
:
>>> df = df.replace('N/A', np.nan)
>>> df[df.col.notnull() & df.col]
col
0 True