我发现doc说如果可能的话减少返回类型的维度,否则返回一致的类型。
df = pd.DataFrame(
{'a': np.ones(4, dtype='float32'),
'b': np.ones(4, dtype='float32'),
'c': np.zeros(4, dtype='float32')})
df.groupby(df4.index,squeeze=True)['b'].sum()
无论有没有挤压,我都看不到任何变化。有人可以解释一下squeeze = True的真正目的,为什么默认设置为false
答案 0 :(得分:2)
经过一些研究后,如果可能的话,它会用于减小尺寸。 @jeff在github中展示的一个例子说明了为什么要使用精确挤压。它在问题here中说明。
df1 = pd.DataFrame(dict(A = range(4), B = 0))
def func(dataf):
return pd.Series({ dataf.name : 1})
result1 = df1.groupby("B",squeeze=False).apply(func)
0
B
0 1
type(result1)
pandas.core.frame.DataFrame
result2 = df1.groupby("B",squeeze=True).apply(func)
B
0 0 1
Name: 0, dtype: int64
type(result2)
pandas.core.series.Series
如果可能减少,挤压将尝试减小尺寸。如您所见,上面的数据框可以缩减为系列,因此可以通过squeeze参数完成。使用挤压的情况非常少。