"""baseline 行数/键数对账（Mac 侧，只读）：5837→5776 的变动是否落在预期内、221 行回补是否摊得开。
用法: ./zt_venv/bin/python code/chk_baseline_keys.py
"""
import pandas as pd

d = pd.read_csv('backtest_zt_full/strength_baseline.csv')
print("列:", list(d.columns))
print("行数:", len(d))
for cols in [['code', 'pool', 'buy_date', 'sell_date'], ['code', 'buy_date'], ['code', 'pool', 'buy_date']]:
    if set(cols) <= set(d.columns):
        print(f"  distinct {cols}: {d.drop_duplicates(cols).shape[0]}")

for c in d.columns:
    if 'date' in c:
        s = d[c].astype(str)
        print(f"  {c}: 范围 {s.min()}~{s.max()}")

bd = d['buy_date'].astype(str)
recent = d[bd.between('20260901', '20260911')]
print("buy_date 在 0901~0911 的行数:", len(recent))
dups = d[d.duplicated(['code', 'pool', 'buy_date', 'sell_date'], keep=False)]
print("完全重复键的行数:", len(dups))
print(d['pool'].value_counts().to_string())
