我正在运行这段代码,以创建一个新的pandas数据框架的列 df
根据条件和其他列的值。
df['C'] = df.apply(lambda x: label_dict[int(x['A'])]
if x['B']==1 else
label_dict[int(x['A'])] + 1,
axis =1 )
其中 label_dict
是类似的东西,只是几个条款,例如(在现实中更大)。
label_dict = {1: 10, 2: 24, 3: 55}
代码为: df['C]
在10^5行上要花好几秒(约3秒)。有没有更好更快的写法?
加速使用 numpy
where
s=df.A.astype(int).map(label_dict)
df['C']=np.where(df.B==1,s,s+1)