условная лямбда-функция из списка? pandas - PullRequest
1 голос
/ 23 марта 2020

enter image description here

Я хотел бы найти средний возраст людей, у которых есть собака, использующая функцию лямбда,

, и до сих пор я сделал это код

pets['age'].mean(lambda x: x in pets['pets'] == 'dog')

... но он продолжает давать мне ошибку значения ..... помощь будет очень ценной!

Ответы [ 2 ]

1 голос
/ 23 марта 2020

При необходимости age с собакой и возможными фильтрами других значений по boolean indexing с DataFrame.loc:

out = df.loc[df['pets'].apply(lambda x: 'dog' in x), 'age'].mean()
print (out)
46.75

При необходимости age только с собакой:

out = df.loc[df['pets'].apply(lambda x: x[0] == 'dog'), 'age'].mean()

out = df.loc[df['pets'].str[0] == 'dog', 'age'].mean()
print (out)
55.333333333333336
0 голосов
/ 23 марта 2020

Вы также можете выполнять эту работу без лямбда-функции. Одно из возможных решений:

df.explode('pets').query('pets == "dog"').age.mean()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...