選項1:
a = np.unique(df.values)
for i in range():
if df2.loc[i,'col1'] in a:
df2.loc[i,'col2'] = 'Ok'
else:
df2.loc[i,'col2'] = 'No'
選項2:
for i in range():
if df2.loc[i,'col1'] in np.unique(df.values):
df2.loc[i,'col2'] = 'Ok'
else:
df2.loc[i,'col2'] = 'No'
在 Python 的記憶體和速度方面哪個更好?
為清楚說明 for 回圈內的操作而進行了編輯。
uj5u.com熱心網友回復:
兩者都是低效的,當您在每一步重新計算唯一值時,第二個更糟。
改用矢量代碼:
df2['col2'] = df2['col1'].isin(np.unique(df.values)).map({True: 'Ok', False: 'No'})
uj5u.com熱心網友回復:
就記憶體而言,選項 2 可能會更好,因為您沒有創建新變數。就速度而言,不會有區別,因為它們df.values參考a的是同一條資料。您可以使用 is 關鍵字查看兩個變數是否參考同一條資料:var1 is var2。但是,我們不知道您對資料做了什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415729.html
標籤:
