#===各数值列的 10 个十分位数 (D10%~D100%)
import numpy as np
_decile_qs = np.arange(0.1, 1.0001, 0.1) # 0.1,0.2,...,1.0 共 10 个
def _print_deciles(name, dframe):
print(f'\n===== {name} 各数值列十分位数 ({len(dframe)} 行) =====')
for c in dframe.columns:
if not pd.api.types.is_numeric_dtype(dframe[c]):
continue
s = dframe[c].dropna()
if len(s) == 0:
print(f' {c}: (空列)')
continue
qs = s.quantile(_decile_qs)
qstr = ' '.join(f'{q:.4g}' for q in qs)
print(f' {c} [n={len(s)}]: {qstr}')
_print_deciles('df_meter', df_meter)
_print_deciles('df_unit', df_unit)
_print_deciles('df_weather', df_weather)