У меня есть датафрейм, который выглядит так:
A
1 [67.0, 51.0, 23.0, 49.0, 3.0]
2 0
3 [595.0]
4 0
5 [446.0, 564.0, 402.0]
6 0
7 0
Я бы хотел найти среднее значение для каждого списка, игнорируя нули. Я хочу получить что-то вроде:
A Mean
1 [67.0, 51.0, 23.0, 49.0, 3.0] 38.6
2 0 0
3 [595.0] 595.0
4 0 0
5 [446.0, 564.0, 402.0] 470.7
6 0 0
7 0 0
Я перепробовал много возможных решений, перечисленных здесь, и ни одно из них не сработало. Это то, что я пробовал до сих пор:
df['Mean'] = df.A.apply(lambda x: mean(x))
, который дает мне эту ошибку
TypeError: объект 'int' не может быть повторен
Также это
df['Mean'] = df['A'].mean(axis=1)
ValueError: Нет оси с именем 1 для типа объекта
Попробовал также и без удачи:
a = np.array( df['A'].tolist())
a.mean(axis=1)
mean(d for d in a if d)
Могу ли я попробовать что-нибудь еще, что дало бы мне ожидаемый результат? Спасибо за вашу помощь.