python - 如何删除由一系列特定值组成的行
问题描述
所以我有以下df:
import pandas as pd
import numpy as np
data = [['John', 1.0, 2.0, 3.0],
['Mary', 0.0, np.nan, ""],
['Chad', 0.0, np.nan, 1.0]]
df = pd.DataFrame(data, columns=['Name', 'Value1', 'Value2', 'Value3'])
df.set_index('Name', inplace=True)
我需要删除仅包含:0.0 或 NaN 或“”的每一列。换句话说,在上面的示例中,我只想删除 Mary 的行。Chad 的行不会被删除,因为它在第三列上有 1.0。但我被卡住了。
我一直在尝试这样做:
df = df.drop(df[(df[:] == 0) | (df[:] == '') | (df[:] == np.nan)])
但它返回此错误:
FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
result = method(y)
关于如何做到这一点的任何想法?
解决方案
一种方法是简单地使用, any
since all并评估为:0.0
NaN
""
False
df[df.any(1)]
Value1 Value2 Value3
Name
John 1.0 2.0 3
Chad 0.0 NaN 1
推荐阅读
- memory - 在基于十六进制的内存地址表示中,将最低有效位更改 2 是否意味着增加/减少 2 个字节或位?
- python-3.x - 如何在单列中用 python 中的 100 替换 20% 的随机行值?
- amazon-web-services - 查询字符串未进入 AWS Lambda 集成代理
- oracle - 设置 Oracle 12c R1 以连接到 Web 服务
- swift - 更改属性其他功能
- python - 在 QThread 中创建 GStreamer 管道时未收到消息
- c# - 使用 Selenium javascript 错误选择下拉列表:a.tagName.toUpperCase 不是函数
- java - ListView 中 RadioGroups 中的其他按钮被选中
- javascript - 是否可以在视频标签 HTML 上附加 data:video
- javascript - 当我在“onbeforeunload”事件中进行异步 XMLHttpRequest 调用时,幕后会发生什么?