首页 > 解决方案 > AttributeError:“NoneType”对象没有属性“asfreq”

问题描述

我正在做一个小项目,试图在 jupyter notebook 上使用 python 制作股票价格预测神经网络。我有我需要的所有导入,并且我正确导入它们而没有错误。我还确保我正确导入了 csv 文件。

这是给我错误的单元格:

a_df = get_dataframe_from_csv("DAX")
a_df = a_df.asfreq('d')
a_df.index

这是该函数的代码:

def get_dataframe_from_csv(ticker):
    try:
        df = pd.read_csv(PATH + ticker + '.csv', index_col='Date', parse_dates=True)
    except FileNotFoundError:
        pass
    else:
        return df

这是 csv 文件的示例。它没有标题/标题:

2013.09.05,00:00,8210.80,8257.80,8162.80,8223.50,30335
2013.09.06,00:00,8224.00,8297.00,8171.50,8251.50,33836
2013.09.09,00:00,8246.50,8315.80,8245.30,8301.00,26223
2013.09.10,00:00,8301.50,8477.80,8298.00,8467.00,30111

当我运行单元格时,我得到了我在标题中提到的错误。我试图告诉网络它获取的数据是每日数据,但是当我尝试运行单元时,我得到一个错误。

我试着把它写成a_df = a_df.asfreq(freq='d')但是没有用。

有哪些可能的解决方案?

编辑:我认为错误是在我的 csv 文件中,我没有带有文本“日期”的索引列..如果是这种情况,我该如何添加它

标签: python-3.xpandasdataframeneural-networkjupyter-notebook

解决方案


尝试修改您的功能,如下所示:

PATH = "C:\\Users\\terry\\Documents\\jupyter projects\\stock\\"
HEADERS = ['Date', 'Time', 'Open', 'High', 'Low', 'Close', 'Volume']

def get_dataframe_from_csv(ticker):
    return pd.read_csv(PATH + ticker + '.csv', index_col='DateTime',
                       parse_dates={'DateTime': ['Date', 'Time']},
                       header=None, names=HEADERS)
                       

a_df = get_dataframe_from_csv("DAX")
>>> a_df
              Open    High     Low   Close  Volume
DateTime                                          
2013-09-05  8210.8  8257.8  8162.8  8223.5   30335
2013-09-06  8224.0  8297.0  8171.5  8251.5   33836
2013-09-09  8246.5  8315.8  8245.3  8301.0   26223
2013-09-10  8301.5  8477.8  8298.0  8467.0   30111

推荐阅读