Iteracja po pandas

Na podstawie: https://youtu.be/CG3EV7UBELA?list=PLt6QwRlruAr_AKW1iCyHVdCiL_Jh2POkA

Metoda 1.
Iteracja za pomocą pętli:

def iterrow_example(df, col):
    for i, row in df.iterrows():
        val = row[col]
        if val < .5:
           df.at[i,col] =0
        else:
           df.at[i,col] =1
timeit iterrow_example(df,'A') ->528 ms

Metoda 2.
Iteracja przed index:

def iloc_example(df, col):
    for i in df.index:
        val = df[col].iloc[i]
        if val < .5:
           df.at[i,col] =0
        else:
           df.at[i,col] =1
timeit iloc_example(df,'B') ->170 ms

Metoda 3
Użycie Lambdy

timeit df['C'] = df['C'].apply(labmda x : 0 if x < .5 else 1) ->3.24 ms

Metoda 4
Użycie metody numpy WHERE

timeit df['D'] = np.where(df['D'] < .5 , 0, 1) ->207 us

Metoda 5
Użycie metody numpy WHERE i danych jako wartosci (.values)

timeit df['D'] = np.where(df['D'].values < .5 , 0, 1) ->92.1 us