在我的pandas数据框中有一列作为“PRODUCT_ID”。我想基于此列创建一个计算列,[3,5,8]中的产品_id将取值为'old',其他值为'new'
现在我使用for循环检查数据帧的每个索引
portfoy['PRODUCT_TYPE'] = np.nan
for ind in portfoy.index:
if portfoy.loc[ind, 'PRODUCT_CODE'] in [3, 5, 8]:
portfoy.loc[ind, 'PRODUCT_TYPE'] = 'old'
else:
portfoy.loc[ind, 'PRODUCT_TYPE'] = 'new'
这段代码似乎花费了很多时间。有更好的方法吗
我的数据如下所示:
使用^{} 和^{} 作为矢量化快速解决方案:
可以使用遮罩条件更新数据帧
portfoy.PRODUCT_CODE.isin([3,5,8]是掩码
~是对面具的否定
相关问题 更多 >
编程相关推荐