我有一個df索引是 dtype 的period[M],如下所示:
| 月 | 結果 | MKT |
|---|---|---|
| 2020-01 | W | 6 |
| 2020-01 | W | 4 |
| 2020-03 | W | 南 |
| 2020-03 | 大號 | 南 |
| 2020-02 | 大號 | 4 |
| 2020-02 | 大號 | 7 |
MKT當月份和結果相同時,我想用列中值的平均值替換列的所有 NAN 值。這些樣本的預期結果是:
| 月 | 結果 | MKT |
|---|---|---|
| 2020-01 | W | 6 |
| 2020-01 | W | 4 |
| 2020-03 | W | 5 |
| 2020-03 | 大號 | 5.5 |
| 2020-02 | 大號 | 4 |
| 2020-02 | 大號 | 7 |
我嘗試了以下方法:
df["MKT"] = df.MKT.fillna(groupby(pd.Grouper(freq="M")).df.MKT.mean())
但我得到了錯誤
NameError:未定義名稱“groupby”
我已經看到了一些針對 datetype 的解決方案,但我有 dtype period[M]。
uj5u.com熱心網友回復:
當月份和結果相同時,將列 MKT 的所有 NAN 值替換為列中值的平均值
這聽起來像你正在尋找
df.MKT = df.MKT.fillna(df.groupby(["month", "outcome"]).MKT.transform("mean"))
但您的預期輸出看起來像
df.MKT = df.MKT.fillna(df.groupby("outcome").MKT.transform("mean"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/456364.html
標籤:Python 日期 熊猫-groupby 时期
上一篇:使用Python獲取列中的周數
