首页 > 解决方案 > AttributeError:类型对象“DataFrame”没有属性“pd”

问题描述

import pandas as pd
import os
import time
from datetime import datetime

path = "C:/Users/Aben/Downloads/intraQuarter"

def Key_Stats(gather="Total Debt/Equity (mrq)"):
    statspath = path+'/_KeyStats'
    stock_list = [x[0] for x in os.walk(statspath)]
    df = pd.DataFrame(columns = ['Date','Unix','Ticker','DE Ratio'])

    sp500_df = pd.DataFrame.pd.read_csv("YAHOO-INDEX_CSPC.csv")

    for each_dir in stock_list[1:]:
        each_file = os.listdir(each_dir)
        ticker = each_dir.split("\\")[1]
        if len(each_file) > 0:
            for file in each_file:
                date_stamp = datetime.strptime(file, '%Y%m%d%H%M%S.html')
                unix_time = time.mktime(date_stamp.timetuple())
                full_file_path = each_dir+'/'+file
                source = open(full_file_path,'r').read()
                try:
                    value = float(source.split(gather+':</td><td class="yfnc_tabledata1">')[1].split('</td>')[0])

                    try:
                        sp500_date = datetime.fromtimestamp(unix_time).strftime('%Y-%m-%d')
                        row = sp500_df[sp500_df["Date"] == sp500_date]
                        sp500_value = float(row["Adj Close"])
                    except:
                        sp500_date = datetime.fromtimestamp(unix_time-259200).strftime('%Y-%m-%d')
                        row = sp500_df[sp500_df["Date"] == sp500_date]
                        sp500_value = float(row["Adj Close"])


                    stock_price = float(source.split('</small><big><b>')[1].split('</b></big>')[0])
                    print("stock_price:",stock_price,"ticker:",ticker)                     

                    df = df.append({'Date':date_stamp,'Unix':unix_time,'Ticker':ticker,'DE Ratio':value,}, ignore_index = True)
                except Exception as e:
                    pass

    save = gather.replace(' ','').replace('(','').replace(')','').replace('/','')+('.csv')
    print(save)
    df.to_csv(save)

Key_Stats()

在 python 3.8.3 中运行此代码时,我收到此错误消息:

Traceback (most recent call last):
  File "C:\Users\Aben\Downloads\pythonstuff\stockbot.py", line 49, in <module>
    Key_Stats()
  File "C:\Users\Aben\Downloads\pythonstuff\stockbot.py", line 14, in Key_Stats
    sp500_df = DataFrame.pd.read_csv("YAHOO-INDEX_CSPC.csv")
AttributeError: type object 'DataFrame' has no attribute 'pd'

有谁知道为什么?我用 pd.read_csv 替换了 from_csv,但现在又出现了另一个错误。我使用的文件实际上是一个 txt 文件,但我在最后用 .csv 扩展名重命名了它。顺便说一句,我正在使用教程

标签: pythonpandasdataframe

解决方案


替换这一行:

sp500_df = pd.DataFrame.pd.read_csv("YAHOO-INDEX_CSPC.csv")

sp500_df = pd.read_csv("YAHOO-INDEX_CSPC.csv")

推荐阅读