这是我的代码段。该代码有效,但是,出现以下错误:
“正在尝试从DataFrame的切片副本上设置一个值”
我猜这是由于某些不赞成使用的语法...
new_data['mon_fri'] = 0
for i in range(0,len(new_data)):
if (new_data['Dayofweek'][i] == 0 or new_data['Dayofweek'][i] == 4):
new_data['mon_fri'][i] = 1
else:
new_data['mon_fri'][i] = 0
答案 0 :(得分:2)
如果存在矢量化的替代方案,请不要在熊猫中循环,这可能对布尔掩码使用isin
并对于True/False
到1/0
的映射强制转换为整数:
new_data['mon_fri'] = new_data['Dayofweek'].isin([0,4]).astype(int)
或使用numpy.where
:
new_data['mon_fri'] = np.where(new_data['Dayofweek'].isin([0,4]), 1, 0)