Я хочу применить несколько фильтров и соответственно изменить значение столбца в пандах

Предположим, у меня есть такой фрейм данных:

      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 в фактическом файле - это действительно длинное имя, которое я фильтрую, но здесь я указываю на него просто как на «а».

Код, который я использую, -

      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

Мой код не выдает ошибок, но даже не дает желаемого результата. Есть ли другой обходной путь?

1 ответ

Решение

Код рабочий! Ошибки не было.
Значение, которое я здесь обозначил как «а», было беспорядком в моем реальном наборе данных, который вызвал проблему.

Другие вопросы по тегам