针对 A 是否在 List_ 中进行赋值。由于这两行代码的逻辑是一样的,只是根据 A 是否在 List_ 中进行判断后赋不同的值,因此可以通过 numpy.where 或 pd.Series.map 来简化。
使用 numpy.where 来简化:
numpy.where 是一个条件语句,可以根据条件返回不同的值,相比两次 loc,使用 numpy.where 语法更简洁,效率也更高。
import numpy as np
df_main['B'] = np.where(df_main['A'].isin(List), 'b1', 'b2')
使用 pd.Series.map 来简化:
map 也是一种高效且简洁的方式,可以用于根据条件映射新值。
df_main['B'] = df_main['A'].map(lambda x: 'b1' if x in List else 'b2')
解释:
np.where:根据A是否在List中进行判断,若条件为True则赋值为'b1',若为False则也赋值'b2'。这会将列中的值直接更新。map:我们使用lambda表达式对A列进行逐个判断并映射新值。
结果:
这两种方法都能以更简洁的形式实现与原代码相同的功能,减少了重复操作。