Pandas 熊猫:使用列数组索引GroupBy对象

Pandas 熊猫:使用列数组索引GroupBy对象,pandas,indexing,pandas-groupby,Pandas,Indexing,Pandas Groupby,在Wes McKinne的Python for Data Analysis一书中,提到 df.groupby('key1')[['data2']] 在语法上类似于 df['data2']].groupby(df['key1']] 但是这两种说法产生的结果是不同的。此外,df.groupby('key1')[['data2']]的结果与df.groupby('key1') 为什么存储在变量a和b中的结果应该是相似的,而这两个变量是相同的,但作者提到的书写方式不同。此外,变量a和c由于a而产

在Wes McKinne的Python for Data Analysis一书中,提到

df.groupby('key1')[['data2']]

在语法上类似于

df['data2']].groupby(df['key1']]

但是这两种说法产生的结果是不同的。此外,df.groupby('key1')[['data2']]的结果与df.groupby('key1')






为什么存储在变量ab中的结果应该是相似的,而这两个变量是相同的,但作者提到的书写方式不同。此外,变量ac由于a而产生的结果相似的原因,也应与c不同,因为索引不同。我不理解这种行为。

对不起,有什么问题吗?@gcoronel99更新了线程。请检查AgSensory,有什么问题?@gcoronel99更新线程。请再查一下
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)})
df

key1    key2    data1   data2
0   a   one 1.103015    1.142491
1   a   two 0.758543    -0.820083
2   b   one -1.749065   0.445968
3   b   two 0.337383    0.372625
4   a   one -0.065351   -0.207071
a = df.groupby('key1')[['data2']]

for key, data in a:
  print(key)
  print(data)

a
  key1 key2     data1     data2
0    a  one  1.103015  1.142491
1    a  two  0.758543 -0.820083
4    a  one -0.065351 -0.207071
b
  key1 key2     data1     data2
2    b  one -1.749065  0.445968
3    b  two  0.337383  0.372625
c = df.groupby('key1')
for key, data in c:
  print(key)
  print(data)

a
  key1 key2     data1     data2
0    a  one  1.103015  1.142491
1    a  two  0.758543 -0.820083
4    a  one -0.065351 -0.207071
b
  key1 key2     data1     data2
2    b  one -1.749065  0.445968
3    b  two  0.337383  0.372625
b = df[['data2']].groupby(df['key1'])
for key, data in b:
  print(key)
  print(data)

a
      data2
0  1.142491
1 -0.820083
4 -0.207071
b
      data2
2  0.445968

3  0.372625