2017-03-23 88 views
2

我有一個數據幀(DF),看起來像:類型錯誤:無法系列轉換爲<類「浮動」>

date     A 
2001-01-02  1.0022 
2001-01-03  1.1033 
2001-01-04  1.1496 
2001-01-05  1.1033 

2015-03-30 126.3700 
2015-03-31 124.4300 
2015-04-01 124.2500 
2015-04-02 124.8900 

對於整個時間序列我試圖除以昨天今天的價值

df["B"] = math.log(df["A"]/df["A"].shift(1)) 

不過,我得到以下錯誤:

TypeError: cannot convert the series to <class 'float'> 

可能有人讓我KN和使用以下日誌結果請問如何解決這個問題?我嘗試使用以下浮動方式進行投射:

df["B"] .astype(float) 

但是無法獲得任何工作。任何指導將不勝感激。

謝謝

+0

檢查是否有任何非浮點值,如空字符串或非數字字符串 – Glacier11

+1

'math.log'需要單個浮點值。它不適用於熊貓系列對象。 – Craig

+0

你可以嘗試轉換隻是一小部分的數據浮動,看看是否工作 – Glacier11

回答

4

您可以改用numpy.log。 Math.log期待一個數字,而不是數組。

0

如果你只是寫df["A"].astype(float)你不會改變df。您需要將astype方法調用的輸出分配給其他內容,包括使用df['A'] = df['A'].astype(float)的現有系列。此外,您可能希望使用numpy作爲@ user3582076建議,或在系列上使用.apply,將今天的值除以昨天的值。

相關問題