overlap

czsc.utils.overlap(df: DataFrame, col: str, **kwargs)[source]

给定 df 和 col,计算 col 中相同值的连续出现次数

Parameters:
  • df – pd.DataFrame, 至少包含 dt、symbol 和 col 列

  • col – str,需要计算连续出现次数的列名

  • kwargs

    dict,其他参数

    • copy: bool, 是否复制 df,默认为 True

    • new_col: str, 计算结果的列名,默认为 f”{col}_overlap”

    • max_overlap: int, 最大允许连续出现次数,默认为 10

Returns:

pd.DataFrame

Example:

>>> df = pd.DataFrame({"dt": pd.date_range("2022-01-01", periods=10, freq="D"),
>>>                   "symbol": "000001",
>>>                   "close": [1, 1, 2, 2, 2, 3, 3, 3, 3, 3]})
>>> df = overlap(df, "close")
>>> print(df)
=======================
输出:
              dt  symbol  close  close_overlap
    0 2022-01-01  000001      1            1.0
    1 2022-01-02  000001      1            2.0
    2 2022-01-03  000001      2            1.0
    3 2022-01-04  000001      2            2.0
    4 2022-01-05  000001      2            3.0
    5 2022-01-06  000001      3            1.0
    6 2022-01-07  000001      3            2.0
    7 2022-01-08  000001      3            3.0
    8 2022-01-09  000001      3            4.0
    9 2022-01-10  000001      3            5.0