1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】TypeError: 系列を <class 'float'> に変換することができません。

2022-01-11 08:35:10

質問

というデータフレーム名は 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'>

でfloatとしてキャストしてみました。

df["B"] .astype(float)

しかし、うまくいきません。

どうすればいいですか?

代わりにnumpy.logを使用することができます。Math.logは配列ではなく、単一の数値を想定しています。