import pandas as pd
import numpy as np
df = pd.DataFrame({'key1':list('aabba'),'key2':['one','two','one','two','one'],'data1':np.random.randn(5),'data2':np.random.rand(5)})
先上代码,生成的df是:
![3f2a6c0157a22056e587114ac8e6d63e.png](https://i-blog.csdnimg.cn/blog_migrate/772297bf7a6ab417bc5f9f38e4e67703.png)
df.groupby('key1')[['data1']]
### 得到一个groupby的对象,用list取出:
list(df.groupby('key1')[['data1']])
![f9c8024fc33db0dcb7fe43cb8efa90fb.png](https://i-blog.csdnimg.cn/blog_migrate/de5ba30c650ad058f212878c00d4558a.png)
可以看到,我要取的是date1列,但结果中给了data1和data2,同时,key1和key2也以列的格式呈现了。
df.groupby(['key1','key2'])[['data1']].mean()
可以看到,加了mean()函数后,取出的数据就只有data1这一列,key1是索引。
![1bdb2615bd384371accf60732b79e701.png](https://i-blog.csdnimg.cn/blog_migrate/0cb384a5eaa27d43147a681aa5157845.jpeg)
groupby取数据,传入列的列表不传函数,得到的结果中为什么不是预想中的传入的列,而是原DataFrame的全部列,这是什么原因呢?