我的需求是把 df 的 NaN 转 None,方便后续 json 转 null 看下面这段代码

    # 计算 MA 指标
    df["MA5"] = df["Close"].rolling(window=5).mean().round(2)
    df["MA10"] = df["Close"].rolling(window=10).mean().round(2)
    df["MA30"] = df["Close"].rolling(window=30).mean().round(2)
    df["MA60"] = df["Close"].rolling(window=60).mean().round(2)

    # 将非空数据保留,空数据用None替换
    df = df.astype(object)
    df = df.where(df.notnull(), None)

    print(df["MA10"].head(10))

    kline_data = df[
        [
            "time",
            "Open",
            "Close",
            "High",
            "Low",
            "Volume",
            "MA5",
            "MA10",
            "MA30",
            "MA60",
        ]
    ].to_dict(orient="records")

死活不行,输出的 MA 值仍然有 NaN 最后通过新建一个 df 解决

   export_df = df.astype(object)              
   export_df = export_df.where(export_df.notna(), None)  

   # 调试:确认 NaN 已变成 None
   print(export_df["MA10"].head(10))