Python 在执行groupby时,是否有方法使用索引号来选择列?

Python 在执行groupby时,是否有方法使用索引号来选择列?,python,pandas,group-by,Python,Pandas,Group By,我使用groupby对组进行求和。我正在处理的代码如下所示: data1=data.groupby('a')['b_1','b_2'].mean().reset_index() data1=data.groupby('a')[list(range(3,33))].mean().reset_index() 但是,我有30多列需要计算,从'b_1'到'b_30',我不想列出所有列的名称,所以我尝试使用数据集的索引号。像这样: data1=data.groupby('a')['b_1','b_2'

我使用groupby对组进行求和。我正在处理的代码如下所示:

data1=data.groupby('a')['b_1','b_2'].mean().reset_index()
data1=data.groupby('a')[list(range(3,33))].mean().reset_index()
但是,我有30多列需要计算,从'b_1'到'b_30',我不想列出所有列的名称,所以我尝试使用数据集的索引号。像这样:

data1=data.groupby('a')['b_1','b_2'].mean().reset_index()
data1=data.groupby('a')[list(range(3,33))].mean().reset_index()
但我总是得到:
KeyError:“找不到列”
所以我只是想知道还有别的方法吗

谢谢

试试看:

data.filter(like='b_').groupby(data['a']).mean().reset_index()
或者,您可以手动创建列列表:

cols = ['b_{}'.format(i) for i in range(1,33)]
data1=data.groupby('a')[cols].mean().reset_index()