将数据帧分配给 for 循环外的变量或直接在 Python 中的 for 循环内使用它

Assign dataframe to variable outside for loop or use it directly inside for loop in Python

选项 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 循环内的操作而进行了编辑。

就内存而言,选项 2 可能更好,因为您没有创建新变量。就速度而言,不会有区别,因为它们 df.valuesa 指的是同一条数据。可以通过is关键字查看两个变量是否引用同一条数据:var1 is var2。但是,我们不知道您对这些数据做了什么。

两者都是低效的,当你在每一步重新计算唯一值时,第二个更差。

改为使用矢量代码:

df2['col2'] = df2['col1'].isin(np.unique(df.values)).map({True: 'Ok', False: 'No'})