【发布时间】:2018-05-02 00:05:18
【问题描述】:
我发现 DataFrame 对象上的 groupby 方法的行为出乎意料。
让我用一个例子来解释。
df = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'],
'key2': ['one', 'two', 'one', 'two', 'one'],
'data1': np.random.randn(5),
'data2': np.random.randn(5)})
data1 = df['data1']
data1
# Out[14]:
# 0 1.989430
# 1 -0.250694
# 2 -0.448550
# 3 0.776318
# 4 -1.843558
# Name: data1, dtype: float64
data1 不再有'key1' 列。
因此,如果我应用以下操作,我预计会收到错误:
grouped = data1.groupby(df['key1'])
但我没有,我可以进一步对grouped 应用mean 方法以获得预期的结果。
grouped.mean()
# Out[13]:
# key1
# a -0.034941
# b 0.163884
# Name: data1, dtype: float64
但是,上述操作确实使用df 的'key1' 列创建了一个组。
怎么会这样?解释器是否将原始 DataFrame(本例中为 df)的信息与创建的 DataFrame/series(本例中为 data1)一起存储?
谢谢。
【问题讨论】:
标签: python semantics pandas-groupby