Python Pandas:使用pivot_table或groupby进行聚合会自动删除混合类型的列

Python Pandas:使用pivot_table或groupby进行聚合会自动删除混合类型的列,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,这可能是已知/预期的行为,但我发现以下意外情况:使用pivot_table或groupby进行聚合时,会自动删除布尔/数值混合类型的列,而DataFrame.sum(或np.sum在混合类型列表中)不会: np.sum和pandas.DataFrame.sum都返回我期望通过对布尔值和数值求和得到的值。这是groupby/pivot_表的预期行为吗 例如: np.sum([0,False]) 返回0和 df = pd.DataFrame({'type':['t1','t1','t2'],'a'

这可能是已知/预期的行为,但我发现以下意外情况:使用pivot_table或groupby进行聚合时,会自动删除布尔/数值混合类型的列,而
DataFrame.sum
(或
np.sum
在混合类型列表中)不会:

np.sum
pandas.DataFrame.sum
都返回我期望通过对布尔值和数值求和得到的值。这是groupby/pivot_表的预期行为吗

例如:

np.sum([0,False])
返回0和

df = pd.DataFrame({'type':['t1','t1','t2'],'a':[1,23,4], 'b':[0,False,1]})
df.head()

返回:

type    t1t1t2
a           28
b            1
dtype: object
正如我所料

但是,

pd.pivot_table(df,columns=['type'], aggfunc=np.sum, values=['a','b'])
显示为以静默方式删除列b:

同样

df.groupby('type').sum()
df.groupby('type').agg({'a':'sum','b':'sum'})
将生成预期的结果。
df.groupby('type').sum()