我想应用多个过滤器并在 pandas [现在工作] 中相应地更改列值
I want to apply multiple filters and change a column value accordingly in pandas [Working now]
假设我有一个像这样的数据框:
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' 的值是导致问题的真实数据集中的一团糟。
假设我有一个像这样的数据框:
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' 的值是导致问题的真实数据集中的一团糟。