【问题场景】
在对销售数据进行上卷的时候,使用dataframe进行groupby操作,发现groupby之后的"销售金额"的和比没有进行groupby之前的和要少几百万。由于数据量有几十万条,不可能一条一条的对比是那些数据没有进行计算。百度一个多小时,没有结果。
然后不同角度去检查dataframe的问题,使用info查看dataframe信息的时候,看到一个字段有缺失值;
【解决办法】
对在groupby函数中需要分组的列进行缺失值填充,然后再进行groupby操作和聚合函数。
df['列名'].fillna('null', inplace=True)
df.groupby(by=['列1','列2',...]).sum()
【问题原因】
groupby操作会自动过滤掉分组列里具有空值的数据行,所以导致数据groupby前后sum不一致。