Замена неправильных значений (подтвержденных двумя условиями) в DataFrame на медианные значения. ОШИБКА двусмысленности - PullRequest
1 голос
/ 17 июня 2020

Я знаю, что многие люди задавали этот вопрос, есть много ответов. Но этот вопрос НЕМНОГО отличается, так как в этой задаче выполняются два условия для замены значения медианным значением.

Прежде чем я объясню подробно, я взял этот набор данных из 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 ().

Я также написал другой код, но получаю эту или любую другую ошибку.

1 Ответ

0 голосов
/ 17 июня 2020

Если я правильно понял вопрос, это то, что вы ищете:

data.loc[(data['damageDealt'] == 0.0)&(data['kills'] == 1),'damageDealt']=median
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...