Skip to content

invalid index to scalar variable @ mode(days_diffs).mode[0]  #404

Open
@BCAA50000

Description

@BCAA50000

Problem Summary:
I tried multiple writer's code, always the same error.
Error Trace:alphalens.utils - > get_clean_factor_and_forward_returns -> compute_forward_returns 的 mode(days_diffs).mode[0] : IndexError: invalid index to scalar variable

`# -- coding: utf-8 --
import alphalens
import pandas as pd
import random
import warnings
warnings.filterwarnings('ignore')

if name == 'main':
# 模拟的交易日期序列
trade_date_ls = pd.date_range('1/1/2010', '31/3/2020').tolist()
# 模拟的股票代码序列
stock_id_ls = [f"{'0' * (6 - len(str(i)))}{i}.SZ" for i in range(2000)]

# 输入因子矩阵
factor_ls = []
for trade_date in trade_date_ls:
    for stock_id in stock_id_ls:
        factor_ls.append([trade_date, stock_id, random.random() / 100])
factor = pd.DataFrame(factor_ls, columns=['trade_date', 'stock_id', 'factor1'])
factor = factor.set_index(['trade_date', 'stock_id'])

# 输入价格矩阵
prices_ls = []
for trade_date in trade_date_ls:
    tmp = [random.random() / 100 for _ in range(len(stock_id_ls))]
    tmp.append(trade_date)
    prices_ls.append(tmp)
prices = pd.DataFrame(prices_ls, columns=['trade_date' if i == len(stock_id_ls) else stock_id_ls[i] for i in range(len(stock_id_ls) + 1)])
prices = prices.set_index(['trade_date'])

# periods表示调仓周期
# bins表示分组数量
input_df = alphalens.utils.get_clean_factor_and_forward_returns(factor, prices, periods=(1, 5, ), bins=10, quantiles=None)

alphalens.tears.create_information_tear_sheet(input_df)
alphalens.tears.create_returns_tear_sheet(input_df)

`

** traceback:**
Traceback (most recent call last):
File "D:\Quant\Projects\ALPHALENS_TEST\CSDN范例.py", line 36, in
input_df = alphalens.utils.get_clean_factor_and_forward_returns(factor, prices, periods=(1, 5, ), bins=10, quantiles=None)
File "D:\Quant\Projects\ALPHALENS_TEST\venv\lib\site-packages\alphalens\utils.py", line 827, in get_clean_factor_and_forward_returns
forward_returns = compute_forward_returns(
File "D:\Quant\Projects\ALPHALENS_TEST\venv\lib\site-packages\alphalens\utils.py", line 319, in compute_forward_returns
delta_days = period_len.components.days - mode(days_diffs).mode[0]
IndexError: invalid index to scalar variable.


**Please provide any additional information below:**
The same code can run on my friends environment.

## Versions
python3.10,
Name: alphalens
Version: 0.4.0
Name: pandas
Version: 1.5.3
Name: numpy
Version: 1.23.1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions