这是我的代码片段。然而,代码可以工作,我得到以下错误:
“正在尝试对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
发布于 2019-02-23 13:19:55
如果存在向量化的替代方案,不要在pandas中循环,这里可以使用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)
https://stackoverflow.com/questions/54842044
复制