【问题标题】:is there a way to use the index numbers to select columns when doing pandas groupby?有没有办法在做熊猫 groupby 时使用索引号来选择列?
【发布时间】:2021-04-14 16:53:48
【问题描述】:

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

data1=data.groupby('a')['b_1','b_2'].mean().reset_index()

但是,我有超过 30 列需要计算,即从 'b_1' 到 'b_30',我不想列出所有列的名称,所以我尝试使用数据集的索引号。像这样:

data1=data.groupby('a')[list(range(3,33))].mean().reset_index()

但我总是得到:KeyError: 'Columns not found' 所以我只是想知道有没有其他方法可以做到这一点?

谢谢!

【问题讨论】:

    标签: python pandas group-by


    【解决方案1】:

    试试:

    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()
    

    【讨论】:

      猜你喜欢
      • 2017-04-28
      • 2015-11-10
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 2020-04-27
      • 2020-06-30
      相关资源
      最近更新 更多