iT邦幫忙

0

python 算列平均值

大家好:
附圖是某個字詞檔案,index欄位是字詞,我想要以列為單位,抓出>0的值,計算平均值,如第一列的均值應該是0.0343731,但目前code只能算整列平均值/images/emoticon/emoticon13.gif

https://ithelp.ithome.com.tw/upload/images/20210713/20116986gvJAT3juGH.png

test['均值'] = test.mean(axis=1)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
froce
iT邦大師 1 級 ‧ 2021-07-13 20:58:53
最佳解答
data['sum'] = data.sum(axis=1) / data.apply(lambda x: x != 0, axis=1).sum(axis=1)

先加總然後除以不為0的個數就好。

看更多先前的回應...收起先前的回應...

喔~了解惹,原來邏輯是這樣,已成功,感謝~

所以apply配上lamda就會是:
lamda類似if,挑出不為0,apply類似for迴圈,重複運算
是這樣嗎/images/emoticon/emoticon06.gif

froce iT邦大師 1 級 ‧ 2021-07-14 13:54:38 檢舉

lambda 是匿名函數,你可以把apply當成類似map,也就是下面這樣:

a = [0, 0, 0.3]
print(list(map(lambda x: x !=0, a)))
# 結果是 [False, False, True]

然後再加總,因為python會把False視為0,所以加總的只有True的個數

喔~懂了~ 非常感謝!!!!

我要發表回答

立即登入回答