天天看点

dataframe groupby_pandas使用groupby分组后传入列的列表得到的还是原来所有列但加个函数后就只有列表里的列...

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是:

dataframe groupby_pandas使用groupby分组后传入列的列表得到的还是原来所有列但加个函数后就只有列表里的列...
df.groupby('key1')[['data1']]
### 得到一个groupby的对象,用list取出:
list(df.groupby('key1')[['data1']])           
dataframe groupby_pandas使用groupby分组后传入列的列表得到的还是原来所有列但加个函数后就只有列表里的列...

可以看到,我要取的是date1列,但结果中给了data1和data2,同时,key1和key2也以列的格式呈现了。

df.groupby(['key1','key2'])[['data1']].mean()           

可以看到,加了mean()函数后,取出的数据就只有data1这一列,key1是索引。

dataframe groupby_pandas使用groupby分组后传入列的列表得到的还是原来所有列但加个函数后就只有列表里的列...

groupby取数据,传入列的列表不传函数,得到的结果中为什么不是预想中的传入的列,而是原DataFrame的全部列,这是什么原因呢?

继续阅读