【问题标题】:python pandas reattach column after aggregation聚合后python pandas重新附加列
【发布时间】:2016-08-03 03:24:56
【问题描述】:

我的 DataFrame 是这样的

exams = pd.DataFrame({'id1':['1x', '1x','2x','3x','3x'], 'id2':['a','a','b','a','a'],'data':[1,2,3,4,5]}) 

    id1    id2   data
0    1x      a      1
1    1x      a      2
2    2x      b      3
3    3x      a      4
4    3x      a      5

然后我把它聚合成

exams_agg = exams.groupby('id1').agg('mean')

然后exams_agg 看起来像

       data
id1
 1x      1.5
 2x        3
 3x      4.5

我想将id2 列重新附加到exams_agg。所以我在考虑创建一个查找表

lookup = exams[['id1', 'id2']]
exams_agg = pd.merge(exams_agg, lookup, left_index=True, right_on='id1')

但由于 lookup 包含重复的 id 对,exams_agg 也包含重复的。有什么好的创作方式

       data    id2
id1
 1x      1.5     a
 2x        3     b
 3x      4.5     a

【问题讨论】:

    标签: python pandas merge aggregate


    【解决方案1】:

    如果唯一的id1 始终对应同一个id2,您只需在groupby 中添加id2

    In [5]: df.groupby(['id1', 'id2']).agg('mean')
    Out[5]: 
             data
    id1 id2      
    1x  a     1.5
    2x  b     3.0
    3x  a     4.5
    

    【讨论】:

    • 他们是。非常感谢。我应该考虑一下的。
    猜你喜欢
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 2019-12-22
    • 2017-08-27
    • 2020-10-23
    • 2019-07-06
    • 1970-01-01
    • 2014-11-23
    相关资源
    最近更新 更多