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 msMetoda 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 msMetoda 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