我有以下DataFrame:

  column1  column2  columns3  column4
0       A        1         2      3.0
1       B        1         2      3.0
2       B        1         2      NaN
3       B        1         2      NaN

我正在try 删除在column1中值为"B"并且在column4中值为空单元格(或NaN值)的所有行.

这不起作用:

for row in df.iterrows():
    if (df.column1.items() == "B"):
        if (df.column4.isnull()):
            df.drop()

而这也不起作用:

for row in df.iterrows():
    if (df.column1.items() == "B") & (df.column4.isna()):
        df.drop()

我在运行时没有错误,但在打印数据帧时没有任何react .

推荐答案

使用多个条件和boolean indexing:

out = df[df['column1'].ne('B') | df['column4'].notna()]

根据DeMorgan's law的计算,这相当于:

out = df[~(df['column1'].eq('B') & df['column4'].isna())]

输出:

  column1  column2  columns3  column4
0       A        1         2      3.0
1       B        1         2      3.0

第一种方法的中间体:

  column1  column2  columns3  column4  col1 ≠ b  col4.notna()  (col1 ≠ b) OR col4.notna()
0       A        1         2      3.0      True          True                        True
1       B        1         2      3.0     False          True                        True
2       B        1         2      NaN     False         False                       False
3       B        1         2      NaN     False         False                       False

第二种方法的中间体:

  column1  column2  columns3  column4  col1 == b  col4.isna()  (col1 == b) AND col4.isna()      ~
0       A        1         2      3.0      False         True                        False   True
1       B        1         2      3.0       True         True                        False   True
2       B        1         2      NaN       True        False                         True  False
3       B        1         2      NaN       True        False                         True  False

Python相关问答推荐

Class_weight参数不影响RandomForestClassifier不平衡数据集中的结果

Pythind 11无法弄清楚如何访问tuple元素

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

按顺序合并2个词典列表

从dict的列中分钟

Python虚拟环境的轻量级使用

使用setuptools pyproject.toml和自定义目录树构建PyPi包

删除字符串中第一次出现单词后的所有内容

joblib:无法从父目录的另一个子文件夹加载转储模型

如何更新pandas DataFrame上列标题的de值?

lityter不让我输入左边的方括号,'

使用Python查找、替换和调整PDF中的图像'

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

如何使用加速广播主进程张量?

ModuleNotFoundError:Python中没有名为google的模块''

PYTHON中的pd.wide_to_long比较慢

EST格式的Azure数据库笔记本中的当前时间戳

Match-Case构造中的对象可调用性测试

try 在单个WITH_COLUMNS_SEQ操作中链接表达式时,使用Polars数据帧时出现ComputeError