我的for“数据集总计”只适用于我的测试集,而不更改我的火车集上的数据点。有人能帮我解释一下吗?
total=[train,test]
for dataset in total:
dataset.loc[dataset['Fare'] <= 18, 'Fare'] = 9
dataset.loc[(dataset['Fare'] > 18) & (dataset['Fare'] <= 37.0042), 'Fare'] = 11
dataset.loc[(dataset['Fare'] > 37.0042) & (dataset['Fare'] <= 63.3583), 'Fare'] = 22
dataset.loc[(dataset['Fare'] > 63.3583) & (dataset['Fare'] <= 93.5), 'Fare'] = 33
dataset.loc[(dataset['Fare'] > 93.5) & (dataset['Fare'] <= 120), 'Fare'] = 44
dataset.loc[(dataset['Fare'] > 120) & (dataset['Fare'] <= 164.8667), 'Fare'] = 55
dataset.loc[(dataset['Fare'] > 164.8667) & (dataset['Fare'] <= 263), 'Fare'] = 66
dataset.loc[dataset['Fare'] > 263, 'Fare'] =77
total=[train,test]发布于 2020-02-17 21:21:50
熊猫的数据是可变的。从这里阅读以下内容
所有熊猫数据结构都是值可变的(它们包含的值可以改变),但并不总是大小可变的。无法更改Series的长度,但可以将列插入到DataFrame中。然而,绝大多数方法都会产生新的对象,并将输入数据保持不变。一般来说,我们喜欢在明智的地方坚持不变。
您可以按以下方式更改代码:
total=[train,test]
for i in range(2):
total[i].loc[dataset['Fare'] <= 18, 'Fare'] = 9
total[i].loc[(dataset['Fare'] > 18) & (dataset['Fare'] <= 37.0042), 'Fare'] = 11
total[i].loc[(dataset['Fare'] > 37.0042) & (dataset['Fare'] <= 63.3583), 'Fare'] = 22
total[i].loc[(dataset['Fare'] > 63.3583) & (dataset['Fare'] <= 93.5), 'Fare'] = 33
total[i].loc[(dataset['Fare'] > 93.5) & (dataset['Fare'] <= 120), 'Fare'] = 44
total[i].loc[(dataset['Fare'] > 120) & (dataset['Fare'] <= 164.8667), 'Fare'] = 55
total[i].loc[(dataset['Fare'] > 164.8667) & (dataset['Fare'] <= 263), 'Fare'] = 66
total[i].loc[dataset['Fare'] > 263, 'Fare'] =77
# no need for this statement! total=[train,test]https://stackoverflow.com/questions/60270446
复制相似问题