cannot convert the series to <class 'float'>問題
2019/05/26 下午 05:10
機器學習共學討論版
黃中鈺
觀看數:83
回答數:3
收藏數:0
ml100-2-d26
ml100-2
請問如果要調整經度,卻不想要統一乘0.75756,想要乘cos(df['pickup_latitude'])卻報錯,cannot convert the series to <class 'float'> 用了 to_numeric() / astype(float)都沒辦法把series改成float ,請問有什麼辦法?
感謝
回答列表
-
2019/05/27 上午 02:57劉珍銘贊同數:1不贊同數:0留言數:0
df['pickup_latitude'] 會回傳一個 Series 不是單一一個數字,而是一組數字
math.cos 並不能直接對 Series (一組數字) 去做處理
這時候要用 lamda 的寫法
cos_pickup_latitude = df['pickup_latitude'].map(lambda x:math.cos(x))
意思就是將 df['pickup_latitude'] 這個 series 裡面每一個數值 x 去做 cos(x) 的運算
最後把所有運算後的值再組成一個 series
-
2019/05/27 上午 10:21張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
補充一下上面同學提到的,主要原因目前用的 cos 是 math.cos ,是對單一數值做運算的。或許可以改用 numpy 的 cos,是針對 series 的資料運算。 Ref: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.cos.html
-
2019/05/30 上午 01:27Seanyu.TW贊同數:0不贊同數:0留言數:0
你可以選用 np.cos 或是 df["pickup_latitue"].apply(lambda x: math.cos(x)) 試看看。