我想在 Pandas 中应用多个过滤器并相应地更改列值 [正在工作]

问题描述

假设我有一个像这样的数据框:

Fil1 Fil2                    A    B   C   D 
a    crossdev radio com      Act  1   23  324
b    crossdev webapp radio   Act  4   45  343
a    Streaming webapp radio  Act  3   23  566
a    crossdev com            Act  1   12  746

实际文件中的 Fil1 列是我正在过滤的非常长的名称,但在这里我将其仅引用为“a”。

我使用的代码是 --

df.loc[(df['Fil1'] == 'a') & (df['Fil2'].str.contains('com')),'C'] = 0
df.loc[(df['Fil1'] == 'a') & (df['Fil2'].str.contains('com')),'D'] = 0
df.loc[(df['Fil1'] == 'a') & (df['Fil2'].str.contains('com')),'A'] = 'Fail'

将此 df 输出到 excel。

所需的 Excel 输出

Fil1 Fil2                    A     B   C   D 
a    crossdev radio com      Fail  1   0   0
b    crossdev webapp radio   Act   4   45  343
a    Streaming webapp radio  Act   3   23  566
a    crossdev com            Fail  1   0   0

我的代码没有给我任何错误,但它甚至没有给我想要的结果。 还有其他解决方法吗?

解决方法

代码正在运行!它没有错误。
我在此处称为“a”的值是导致问题的真实数据集中的混乱。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...