#%% iloc/ loc
import time
t0 = time.time()
cnt= 0
for i in range(10000):
a =df1c.loc[i]['play_days']
if int(a)>5:
cnt+=1
print(cnt)
print('elapsed. ', time.time() - t0)
#%% at
import time
t0 = time.time()
cnt= 0
for i in range(10000):
a =df1c.at[i,'play_days']
if int(a)>5:
cnt+=1
print(cnt)
print('elapsed. ', time.time() - t0)
#%% export list of dict
t0 = time.time()
df_d = df1c.to_dict()
print('elapsed. ', time.time() - t0)
#%%
import time
t0 = time.time()
cnt= 0
for i in range(10000):
a = df_d['plray_days'][i]
if int(a)>5:
cnt+=1
print(cnt)
print('elapsed. ', time.time() - t0)
#%% export to dict
t0 = time.time()
df_d2 = df1c.T.to_dict().values()
print('elapsed. ', time.time() - t0)
df_d2 = list(df_d2)
#%%
import time
t0 = time.time()
cnt= 0
for i in range(10000):
a = df_d2[i]['play_days']
if int(a)>5:
cnt+=1
print(cnt)
print('elapsed. ', time.time() - t0)
1) loc/ iloc 로 접근하는 방법
elapsed. 1.4490845203399658
2) at[i, col] 로 접근하는 방법
elapsed. 0.09808158874511719
3) dataframe 을 dict로 convert 해서 dict의 [col][i] 로 접근하는 방법
elapsed. 0.002546072006225586
4) dataframe 을 list of dict로 convert해서 [i][col] 로 접근하는 방법
elapsed. 0.00275421142578125
3,4 번이 가장 빠르다. 그러나 ,4번은 모든 row마다 dict로 컨버팅 하는 과정이 너무 오래 걸림
1번이 가장 느리다.
반응형