Python: zmiana wartości w DataFrame dla wierszy spełniających określony warunek

25-Lis-2018

DataFrame może zawierać dużo wierszy. Czasami chcesz zmienić wartość w określonej kolumnie, ale tylko pod warunkiem, że dane w wierszu spełniają jakiś określony warunek.Zacznijmy od  instrukcji tworzącej prosty data frame:

import pandas as pd
import numpy as np
 
df = pd.DataFrame(columns=['values','values2'])
 
for i in range(10):
 df.loc[i] = [i,i*10]
 
df

Teraz kolej na sztuczkę. Trzeba znaleźć miejsca, gdzie w kolumnie values mamy spełniony jakiś warunek, powiedzmy values > 5

filter = df['values'] > 5
filter

filter to seria wartości True/False, gdzie True oznacza komórki spełniające warunek, a False – nie spełniające. Jak chcesz dostać z data frame, tylko te wiersze, które spełniają warunek piszesz tak:

df[filter]

a jak chcesz tylko te zmienić (tutaj np. wpisać wartość NaN), to piszesz tak:

df['values'][filter] = np.NaN
df

 

Dodaj komentarz:

Autor: Rafał Kraik