Я задавал подобный вопрос раньше, возможно, не предоставил достаточно информации - следовательно, не получил полного ответа.
Все, что я пытаюсь сделать, - это умножить некоторые значения столбца.по скаляру (звучит как простая задача), и кажется, что я пытался отредактировать своего рода «просмотр» экземпляра кадра данных, так как в некоторых случаях изменения не происходили.
Это код:
def test(train_data,test_data):
X_train=train_data[features].copy()
y_train=train_data[label_col].copy()
X_test=test_data[features].copy()
y_test=test_data[label_col].copy()
#mult=2
print(mult) #0.7183144682062172
print(factor_points) #6296296296296297
print(X_test['f'].loc[test_data[benefit_type_feature]!=1].mean()) #0.02366651480994471 original avg
X_test['f'].loc[test_data[benefit_type_feature]!=1]=X_test['f'].loc[test_data[benefit_type_feature]!=1]*mult
print(X_test['f'].loc[test_data[benefit_type_feature]!=1].mean()) #0.02366651480994471 didn't change
X_test['f'].loc[test_data[benefit_type_feature]!=1]=X_test['f'].loc[test_data[benefit_type_feature]!=1].apply(lambda x: x*mult)
print(X_test['f'].loc[test_data[benefit_type_feature]!=1].mean()) #0.02366651480994471 didn't change
X_test['f']*=2
print(X_test['f'].loc[test_data[benefit_type_feature]!=1].mean()) #0.04733302961988942 changed
point_data=X_test.loc[test_data[benefit_type_feature]!=1]
point_data['f']*=factor_points
X_test.update(point_data)
print(X_test['f'].loc[test_data[benefit_type_feature]!=1].mean()) #0.029802277908823057 changed
Я удалил детали, которые не имели отношения к ИМО.
Если значение не изменилось, что может быть причиной, по которой оно не изменилось?Логика должна быть в порядке, это что-то другое .. Я делал это раньше.Я боюсь, что это случится со мной снова, и я даже не замечу.
Спасибо!