Pandas groupby().sum() 没有忽略 None/empty/np.nan 值

Pandas groupby().sum() is not ignoring None/empty/np.nan values

我和 Pandas groupby().sum() 一起遇到了一个奇怪的问题。

我有一个包含 2 个类别列和 3 个 numeric/float 值列的 DF - 值列有 Nones,如下所示:

  cat_1 cat_2  val_1  val_2  val_3
0     b     z    0.1    NaN    NaN
1     b     x    0.1    NaN    NaN
2     c     y    0.1    1.0    NaN
3     c     z    0.1    NaN    NaN
4     c     x    0.1    1.0    NaN

我想 group-by cat_1 然后 sum 值列:val_1, val_2val_3 每个类别。

最终聚合应该是这样的:


  cat_1  val_1  val_2  val_3
0     b    0.2    NaN    NaN
1     c    0.3    2.0    NaN

问题: 是当我执行 df.groupby(["cat_1"], as_index=False).sum() 时,对于所有值为 None/null:[=25 的类别,我得到 0.0 =]

  cat_1  val_1  val_2  val_3
0     b    0.2    0.0    0.0
1     c    0.3    2.0    0.0

我该如何解决这个问题?谢谢。

似乎没有像通过 DataFrame.sum(skipna=False) 那样直接的方法,但它没有为 groupby-sum 实现。但是,如 ScootCork mentioned, the required behaviour can be achieved using: groupby().sum(min_count=1) - from documentation.