【发布时间】:2018-08-20 09:35:26
【问题描述】:
我有一个数据框,其中每个唯一组有 4 行。 所以我需要按使它们唯一的列进行分组,并进行一些聚合,例如最大值、最小值、总和和平均值。 但问题是我有一些组的所有 NaN 值(在某些列中)并返回一个 0。是否可以返回一个 NaN? 例如: df
time id el conn column1 column2 column3
2018-02-11 14:00:00 1 a 12 8 5 NaN
2018-02-11 14:00:00 1 a 12 1 NaN NaN
2018-02-11 14:00:00 1 a 12 3 7 NaN
2018-02-11 14:00:00 1 a 12 4 12 NaN
2018-02-11 14:00:00 2 a 5 NaN 5 5
2018-02-11 14:00:00 2 a 5 NaN 3 2
2018-02-11 14:00:00 2 a 5 NaN NaN 6
2018-02-11 14:00:00 2 a 5 NaN 7 NaN
因此,例如,我需要 groupby ('id', 'el', 'conn') 并找到 column1、column3 和 column2 的总和。 (在实际情况下,我需要对更多列执行聚合)。 我尝试了几种方法:.sum()、.transform('sum'),但是对于具有所有 NaN 值的组返回零。
期望的输出:
time id el conn column1 column2 column3
2018-02-11 14:00:00 1 a 12 16 24 NaN
2018-02-11 14:00:00 2 a 5 NaN 15 13
欢迎任何帮助。
【问题讨论】:
标签: python pandas numpy dataframe nan