Подсчет вхождений по строке в Python Pandas - PullRequest
2 голосов
/ 06 марта 2020

Допустим, у меня есть фрейм данных, который выглядит следующим образом:

      Select a BW Speed      Router Name  router_max OK or REPLACE?     Firewall Name  firewall_max OK or REPLACE?
0                     50           XYZ        30.0        REPLACE               X          30.0        REPLACE
1                     50           XYZ        30.0        REPLACE               X           NaN            N/A
2                     50           XYZ        30.0        REPLACE               X          30.0        REPLACE

Мне нужен дополнительный столбец, который показывает количество раз, когда в этой строке происходит "ЗАМЕНА" (в данном случае это общее число предметов, которые необходимо заменить).

Буду признателен за любую помощь ... Я знаю, что это, вероятно, довольно базовый c материал.

Ответы [ 2 ]

1 голос
/ 06 марта 2020
df['new_column'] = df.apply(lambda x: x.str.contains("REPLACE").sum(), axis=1)
0 голосов
/ 06 марта 2020

с использованием stack и groupby с str_contains во избежание применения apply.

df["replace_check"] = (
    df.stack().to_frame()[0].str.contains("REPLACE").groupby(level=0).sum()
)

print(df)

       Select a BW Speed  Router Name   router_max OK or REPLACE?    \
0                       50         XYZ         30.0          REPLACE   
1                       50         XYZ         30.0          REPLACE   
2                       50         XYZ         30.0          REPLACE   

     Firewall Name   firewall_max  OK or REPLACE?  replace_check  
0                 X           30.0        REPLACE            2.0  
1                 X            NaN            N/A            1.0  
2                 X           30.0        REPLACE            2.0  
...