【问题标题】:Python: float() argument must be a string or a number, not 'Period'Python:float() 参数必须是字符串或数字,而不是“期间”
【发布时间】:2019-11-18 16:54:16
【问题描述】:

我尝试通过以下代码绘制图表:

df:
     date        qty
0  2016-01-01   21.523810
1  2016-02-01   20.476190
2  2016-03-01   20.523810
3  2016-04-01   26.666667
4  2016-05-01   
...
%matplotlib inline
import matplotlib
from matplotlib import pyplot as plt
from pylab import rcParams
import numpy as np
import pandas as pd

rcParams['figure.figsize'] = 10, 8 # width 10, height 8
matplotlib.rcParams.update({'font.size': 14})

ax = df.plot(x='date', y='qty', style='bx-', grid=True)

但收到以下错误消息:

TypeError: float() 参数必须是字符串或数字,而不是 'Period'

没有得到这个浮动错误的来源。任何建议都受到高度赞赏。

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    一个想法是在绘图之前将周期转换为日期时间:

    df['date'] = df['date'].dt.to_timestamp()
    

    对于我来说,你的解决方案也是如此,也许你可以尝试升级到 pandas/matplotlib 的最新版本。

    【讨论】:

      猜你喜欢
      • 2017-03-01
      • 1970-01-01
      • 2019-09-24
      • 2017-08-29
      • 2019-07-07
      • 2019-05-22
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多