python - 有条件地从 pandas 数据框中删除行

标签 python pandas dataframe

我正在尝试有条件地从 pandas 数据框中删除行并遇到麻烦。例如,我想从下面的示例中的数据框中删除第二行和第三行。

import pandas as pd

df = pd.DataFrame([
    [12, 10, 7, 0],
    [11, 0, 0, 3],
    [0, 0, 0, 0],
    [0, 6, 7, 5],
    [4, 11, 3,4],
    [5, 2, 5, 0]],
    columns=["num1", "num2","num3","num3"])

我已经尝试过:

df.loc[~(df['num2','num3']==0).all(axis=1)]

但收到错误“TypeError:仅整数标量数组可以转换为标量索引”

我也根据下面的建议尝试过此操作并得到了意外的输出: enter image description here

最佳答案

使用 neall 为:

df = df.loc[df[['num2','num3']].ne(0).all(axis=1)]
print(df)
   num1  num2  num3  num4
0    12    10     7     0
3     0     6     7     5
4     4    11     3     4
5     5     2     5     0

这是我的执行截图:

Output

关于python - 有条件地从 pandas 数据框中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62962056/

相关文章:

python - 在命令提示符下运行 python :Access is Denied

python - 在Python中分配数据框中值的渐进计数

python - 计算包含 NaN 值的行数

r - 在R中使用带有多个参数的匿名函数

python - 为什么 (0>1 + 0>9) 返回 False,而 ((0>1) + (0>9)) 返回 0?

Python SQLite3/从表中选择行

python - 解压大端编码端口号

python - 如何 reshape 数据框并扩展行数

pandas - 如何在pandas中使用条件在groupby中设置标志

python - 将字典的 numpy ndarray 转换为 DataFrame