Python Pandas:使用pivot_table或groupby进行聚合会自动删除混合类型的列
这可能是已知/预期的行为,但我发现以下意外情况:使用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'
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()