这是我的代码片段。该代码有效,但是我收到以下错误:
“正在尝试在 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
最佳答案
如果存在矢量化替代方案,请不要在 pandas 中循环,这里可以使用 isin
对于 bool 掩码并转换为整数,用于 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)
关于python - 创建新的Dataframe数据切片问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54842044/