这可能是已知的/预期的行为,但我发现以下意外情况:使用pivot_table或groupby进行聚合时,静默地将混合类型列(布尔值/数字)插入DataFrame.sum
(或np.sum
混合类型列表中)不要:
np.sum
和pandas.DataFrame.sum
都返回我对布尔值和数字值求和所期望的值。这是groupby / pivot_table的预期行为吗?
示例:
np.sum([0,False])
返回0和
df = pd.DataFrame({'type':['t1','t1','t2'],'a':[1,23,4], 'b':[0,False,1]})
df.head()
df.sum()
返回:
type t1t1t2
a 28
b 1
dtype: object
如我所愿。
但是,
pd.pivot_table(df,columns=['type'], aggfunc=np.sum, values=['a','b'])
似乎无声地删除了b列:output table image
就像
df.groupby('type').sum()