python 如何對Series中的每一個數據做運算

問題描述

最近~ 發現對series裡的元素操作挺復雜的,用for loop + Series.iloc[i]會發生卡死的狀況,那麼,lambda是解決辦法:

error 1

ratings['timestamp'] = ratings['timestamp'].apply(ratings['timestamp'].iloc[i].strftime("%Y-%m-%d %H:%M:%S", ts) for i in range(len(ratings)))

TypeError: 'generator' object is not callable

用lambda直接apply,就相當於對每一行的每個元素,逐一apply:

ratings_sub['timestamp'] = ratings_sub['timestamp'].apply(lambda x:time.strftime('%Y/%m/%d',time.localtime(x)))

補充:DataFrame與Series數值的運算

原則一:

運算結果返回全部出現的索引

原則二:

相同索引相加

原則三:

任何值與nan做算術運算 結果為nan

在這裡插入圖片描述

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: