数值错误:从传递的值推断出的频率为None,与传递的频率MS不符。

3

我正在尝试创建时间序列分析的月频率指数。

date变量是一个时间戳,从2018-10-18 10:50:10开始到2019-11-25 15:09:33结束。但我在主题行中遇到了错误。

我尝试过去掉空值,但没有帮助。由于是Python编程初学者,请求帮助。

df=pd.read_excel("Source_Data.xlsx",index_col="activation date",parse_dates=True)

df.rename(
    columns={
        "activation date":"Date",
        "Estimate Volumes in HL (ABI)":"Volume"
    },
    inplace=True
)

dataset=df.filter(["Date","Volume"],axis=1)

dataset.index.freq="MS"

欢迎来到StackOverflow。好的答案需要好的问题。请查看如何提供一个出色的pandas示例以及如何提供一个最小化、完整和可验证的示例。您可以编辑您的问题,使得更容易获得帮助。 - run-out
为了更好地理解,我简化了我的问题。 - Biplab1985
请尝试以读者可复制并创建数据框的格式提供数据示例。_____ 您的最后两行看起来不对。不确定您正在过滤什么,但该过滤器列通常会减少您拥有的列。更典型的做法是使用.loc[:, ['Date', 'Volume']],假设Date不在索引中,它很可能是。______ 最后一行不能这样工作。我认为您要寻找的是重新采样,文档在此处[https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html]。 - run-out
1个回答

0

解决方案:

dataset.index.asfreq('MS')

你的数据集可能存在缺失的月份。你需要使用 "asfreq" 来填充所选频率的每个实例。它会自动设置 freq='MS'。你也可以自己修复 dataset.index.freq="MS",但是一旦应用 asfreq('MS'),它会自动为你完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接