Pandas заменяет значения

У меня есть следующий фреймворк:

col 0 pre 1 post 2 a 3 b 4 post 5 pre 6 pre 

Я хочу заменить все строки в dataframe, которые не содержат «pre», чтобы стать «nonpre», поэтому dataframe выглядит так:

  col 0 pre 1 nonpre 2 nonpre 3 nonpre 4 nonpre 5 pre 6 pre 

Я могу сделать это, используя словарь и замену pandas, однако я хочу просто выбрать элементы, которые не являются «pre», и заменить их на «nonpre». есть ли лучший способ сделать это без перечисления всех возможных значений col в словаре?

2 Solutions collect form web for “Pandas заменяет значения”

До тех пор, пока вам будет удобно использовать df.loc[condition, column] который позволяет pandas, это очень просто, просто выполните df['col'] != 'pre' чтобы найти все строки, которые необходимо изменить:

 df['col2'] = df['col'] df.loc[df['col'] != 'pre', 'col2'] = 'nonpre' df Out[7]: col col2 0 pre pre 1 post nonpre 2 a nonpre 3 b nonpre 4 post nonpre 5 pre pre 6 pre pre 
 df[df['col'].apply(lambda x: 'pre' not in x)] = 'nonpre' 
  • Альтернативный метод, чтобы избежать цикла в кадре данных панд
  • Итерация по строкам и расширение рамки данных pandas
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.