【发布时间】:2023-03-25 04:40:01
【问题描述】:
所以我试图理解 pandas.dataFrame.groupby() 函数,我在文档中遇到了这个例子:
In [1]: df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
...: 'foo', 'bar', 'foo', 'foo'],
...: 'B' : ['one', 'one', 'two', 'three',
...: 'two', 'two', 'one', 'three'],
...: 'C' : np.random.randn(8),
...: 'D' : np.random.randn(8)})
...:
In [2]: df
Out[2]:
A B C D
0 foo one 0.469112 -0.861849
1 bar one -0.282863 -2.104569
2 foo two -1.509059 -0.494929
3 bar three -1.135632 1.071804
4 foo two 1.212112 0.721555
5 bar two -0.173215 -0.706771
6 foo one 0.119209 -1.039575
7 foo three -1.044236 0.271860
为了进一步探索,我这样做了:
print(df.groupby('B').head())
它输出相同的数据帧,但是当我这样做时:
print(df.groupby('B'))
它给了我这个:
<pandas.core.groupby.DataFrameGroupBy object at 0x7f65a585b390>
这是什么意思?在普通的 dataFrame 中打印 .head() 只是输出前 5 行这里发生了什么?
还有为什么打印.head() 会提供与数据框相同的输出?不应该按'B'列的元素分组吗?
【问题讨论】: