feture_cross_layering

czsc.feture_cross_layering(df, x_col, **kwargs)[source]

对因子数据在时间截面上进行分层处理

函数计算逻辑:

  1. 首先从参数中获取分层数量 n,默认为10。

  2. 确保数据 df 包含 dt、symbol 和指定的因子列 x_col, 确保标的数量大于分层数量。

  3. 如果因子列的唯一值数量大于分层数量,使用 pd.qcut 函数将因子列进行分层,按照分位数进行分组。

  4. 如果因子列的唯一值数量小于等于分层数量,按照因子列的唯一值进行排序,并将每个因子值映射为对应的层级。

  5. 将分层结果转换为字符串形式,以表示层级。

Parameters:
  • df

    因子数据,数据样例:

    dt

    symbol

    factor01

    factor02

    factor03

    2022-12-19 00:00:00

    ZZUR9001

    -0.0221211

    0.034236

    0.0793672

    2022-12-20 00:00:00

    ZZUR9001

    -0.0278691

    0.0275818

    0.0735083

    2022-12-21 00:00:00

    ZZUR9001

    -0.00617075

    0.0512298

    0.0990967

    2022-12-22 00:00:00

    ZZUR9001

    -0.0222238

    0.0320096

    0.0792036

    2022-12-23 00:00:00

    ZZUR9001

    -0.0375133

    0.0129455

    0.059491

  • x_col – 因子列名

  • kwargs

    • n: 分层数量,默认为10

Returns:

df, 添加了 x_col分层 列