当Min_count = 1时,Groupby总和等于0

时间:2018-11-24 21:27:14

标签: python pandas

我有一个包含重复列名的数据框。现在,我尝试使用以下命令将重复的列合并为单个列(以下数据框仅用于演示。它不包含重复的列名,但是重复的列名也会出现相同的问题)。 / p>

d=pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
d['col2']=d['col2'].astype(str)
d['col1']=np.nan
d=d.groupby(lambda x:x, axis=1).sum(min_count=1)


the output is:
   col1  col2
0   0.0   3.0
1   0.0   4.0

但是我希望

the output is:
   col1  col2
0   Nan   3.0
1   Nan   4.0

我希望通过使用min_count = 1,当汇总的列都是NaN时,pandas将返回NaN。但是,现在它返回0而不是NaN。知道为什么吗?

1 个答案:

答案 0 :(得分:0)

当您设置min_count = 1时,这取决于您的熊猫版本号。 如果您的版本<0.22.0,那么当非na值少于1时,您的确会得到np.nan。 从0.22.0版开始,只有na值时,默认值已更改为0。

documentation中也对此进行了解释。