代码之家  ›  专栏  ›  技术社区  ›  Jack Walsh

Python GROUPBY语句只留下聚合字段

  •  0
  • Jack Walsh  · 技术社区  · 6 年前
    frame = frame2.groupby(['name1', 'name2', 'date', 'agID','figi', 'exch', 'figi', 'marketSector','name','fx_currency', 'id_type', 'id', 'currency']).agg({'call_agreed_amount' : 'sum' , 'pledge_current_market_value' : 'sum', 'pledge_quantity' : 'sum', 'pledge_adjusted_collateral_value' : 'sum', 'count' : 'count'})
    print(frame.head())
    for value in frame['call_currency']:
        doStuff()
    

    在上面的代码中,所有的列都存在于GROMPUBY语句之前。执行groupby语句后, frame.head() 返回所有相同的列。我的代码在for循环中失败 KeyError 试图访问 frame['call_currency'] ,其中存在100%个 frame .

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jack Walsh    6 年前

    在排除故障之后,我意识到python的groupby函数返回一个带有层次索引的groupby对象。分组列被添加为聚合值的索引。为了解决这个问题,我补充说 .reset_index() 在我的groupby语句的末尾。