matplotlib函数传递奇怪的错误

时间:2019-05-09 13:16:06

标签: python pandas matplotlib smoothing

我有一个名为df的数据框,在jupyter笔记本中有两个数字变量。

df.head()
responseRates_Outgoing_Messages responseRates_Outgoing_Messages
    22640   0   0
    181487  5   5
    327672  1   1
    254919  19  19
    136942  14  14

我正在尝试编写一个函数,该函数将用户定义的平滑应用于数据,然后返回绘图。这是该功能:

from matplotlib import pyplot
%matplotlib inline

def determineSmoothness(df, numX = 0, denomX = 0, subsetDenom = 0):
    df["responseRates_Outgoing_Messages"] = pd.to_numeric(df["responseRates_Outgoing_Messages"])
    df["responseRates_Messages_Received"] = pd.to_numeric(df["responseRates_Messages_Received"])
    df = df.query('responseRates_Outgoing_Messages < @subsetDenom')
    df["responseRates_Outgoing_Messages"] = df["responseRates_Outgoing_Messages"] + denomX
    df["responseRates_Messages_Received"] = df["responseRates_Messages_Received"] + numX
    pyplot.hist(df["responseRates_Messages_Received"], alpha = 0.5, label = 'Messages Received')
    pyplot.hist(df["responseRates_Outgoing_Messages"], alpha = 0.5, label = 'Messages Sent')
    pyplot.legend(loc = "upper right")

当我在jupyter笔记本中运行此功能时,会出现以下错误:

df = training_data.copy()
ef.determineSmoothness(df, 12, 100, 400)

ValueError: Cannot add integral value to Timestamp without freq.

我已经确认这两列都是数字的,甚至已经在函数中插入了两行以确保它们都是数字,所以我不清楚如何涉及时间戳。

奇怪的是,如果我尝试运行完全相同的代码(不在函数中),则绘图似乎可以正常工作。

我知道这有点含糊,但想知道这是否以前曾见过,是否有解决方案,或者我是否完全错过了一些东西。

0 个答案:

没有答案