[Python] AttributeError: 'int' object has no attribute 'dtype'

Discussão em 'Python' iniciado por Stack, Junho 24, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to run a script to obtain data for a number of stocks. Part of the data I am trying to obtain is a liquidity measure (called Amihud liquidity measure). I automated the script but when running the automated script, I get an error after roughly 15-20 succesful returns. How can I fix this issue?

    File "script.py", line 23, in <module>
    return_data = function.get_data(row[1], row[0])
    File "C:\Users\leon_\function.py", line 39, in get_data
    print(np.nanmean(illiq))
    File "D:\Anaconda3\lib\site-packages\numpy\lib\nanfunctions.py", line 916, in nanmean
    avg = _divide_by_count(tot, cnt, out=out)
    File "D:\Anaconda3\lib\site-packages\numpy\lib\nanfunctions.py", line 190, in _divide_by_count
    return a.dtype.type(a / b)
    AttributeError: 'int' object has no attribute 'dtype'


    The part of the code that handles the illiquidity measure:

    # Amihuds Liquidity measure
    liquidity_pricing_date = date_1 + datetime.timedelta(days=-20)
    liquidity_pricing_date2 = date_1 + datetime.timedelta(days=-120)
    stock_data = quandl.get(stock_ticker, start_date=liquidity_pricing_date2, end_date=liquidity_pricing_date)
    p = np.array(stock_data['Adj. Close'])
    returns = np.array(stock_data['Adj. Close'].pct_change())
    dollar_volume = np.array(stock_data['Volume'] * p)
    illiq = (np.divide(returns, dollar_volume))
    print(np.nanmean(illiq))
    illiquidity_measure = np.nanmean(illiq, dtype=float) * (10 ** 6) # multiply by 10^6 for expositional purposes
    return [stock_vola, stock_price_average, illiquidity_measure]


    Anyone has any idea on how to solve this?

    EDIT: This is the script file

    # Open File Dialog

    root = tk.Tk()
    root.withdraw()

    file_path = filedialog.askopenfilename()

    # Load Spreadsheet data
    f = open(file_path)

    csv_f = csv.reader(f)
    next(csv_f)

    result_data = []

    # Iterate
    for row in csv_f:
    return_data = function.get_data(row[1], row[0])
    if len(return_data) != 0:
    # print(return_data)
    result_data_loc = [row[1], row[0]]
    result_data_loc.extend(return_data)
    result_data.append(result_data_loc)

    if result_data is not None:
    with open('resuls.csv', mode='w', newline='') as result_file:
    csv_writer = csv.writer(result_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    for result in result_data:
    # print(result)
    csv_writer.writerow(result)
    else:
    print("No results found!")

    Continue reading...

Compartilhe esta Página