Я знаю, что многие люди задавали этот вопрос, есть много ответов. Но этот вопрос НЕМНОГО отличается, так как в этой задаче выполняются два условия для замены значения медианным значением.
Прежде чем я объясню подробно, я взял этот набор данных из kaggle
https://www.kaggle.com/c/pubg-finish-placement-prediction/team
Итак,
Этот набор данных имеет две функции: «damageDealt» и «kills». По соглашению, когда мы наносим урон врагу, он умирает, и вы не можете убить его без какого-либо ущерба.
a = data[data['damageDealt'] == 0.0]
b=a[a['kills'] > 0]
b['kills']
Здесь у нас 4153 строки. И
b['kills'].unique()
Это возвращает массив [1,2,3]
Я хочу заменить все значение 0,0 в «damageDealt» на медианное значение этого «damageDealt», где убийства равны 1 , 2 и 3. соответственно.
Более того, я не понимаю, как это сделать. Хотя я написал код с ошибкой.
median = data[data['kills'] == 1]['damageDealt'].median() # Finding median of 1 kills with some
# damageDealt
np.where(data['damageDealt'] == 0.0 and data['kills'] == 1 , median ) # replaceing value where kills
# is 1 but damageDealt is 0.0
Это ошибка, которую я получаю.
ValueError: Истинное значение серии неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().
Я также написал другой код, но получаю эту или любую другую ошибку.