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。
推薦閱讀:
- pandas中關於apply+lambda的應用
- Pandas時間類型轉換與處理的實現示例
- Python Pandas基礎操作詳解
- Pandas加速代碼之避免使用for循環
- python中pandas操作apply返回多列的實現