V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kingmo888
V2EX  ›  Python

求解 pandas groupby 的标签问题,谢谢!^_^

  •  
  •   kingmo888 · 2016-10-29 23:21:36 +08:00 · 3141 次点击
    这是一个创建于 2736 天前的主题,其中的信息可能已经有所发展或是发生改变。
    idx A B C D
    n1 a n1 0.08235683979623196 0.05382651911109722
    n2 a n2 -0.5753742388125477 -1.274828987062829
    n3 c n3 -1.4215891862728542 -1.5249012616692992
    n4 b n4 2.597861476435896 -0.022156711083823347
    n5 b n5 0.554609527394234 -0.41314768348864467
    n6 c n6 0.515677716749852 -1.6778597999504492
    n7 c n7 -1.6537892579863014 -1.4180345858887689
    n8 c n8 -0.6986637088054982 0.4363171785879798



    假设我有如上一个 df 表,分为 A,B,C,D 共 4 列。
    我想以列 A 为分组,求列 C 各组内的最大值。**同时知道这个最大值对应的是哪个 index**后一个要求怎么实现哈?


    df['C'].groupby(df['A']).max()
    结果只是:
    A
    a 0.082357
    b 2.597861
    c 0.515678
    Name: C, dtype: float64
    获取不到他们的 index
    7 条回复    2016-11-01 06:29:11 +08:00
    princelai
        2
    princelai  
       2016-10-30 00:58:10 +08:00 via Android
    group 前先 reset_index,比如这列就叫 index ,最后一步加上['index']
    billgreen1
        3
    billgreen1  
       2016-10-30 08:16:59 +08:00
    没那么麻烦
    df.groupby('A')['C'].agg([max, np.argmax])
    kingmo888
        4
    kingmo888  
    OP
       2016-10-30 09:08:40 +08:00
    @billgreen1 这个好!太赞了。查询了一下,一个求最大值,一个求最大值下标。
    kingmo888
        5
    kingmo888  
    OP
       2016-10-30 09:09:10 +08:00
    @princelai 其实 B 列就跟 index 一致。但是不是很明白你说的。那样求出来有问题。
    wnduan
        6
    wnduan  
       2016-10-30 10:27:55 +08:00
    因为你的 'B' 列和 'index' 一样,所以 df.groupby(['A']).max() 就行,这样 'C' 和 'D' 的最大值都有。如果只要 'C' 的话也可以 df[['A', 'B', 'C']].groupby(['A']).max()
    hastelloy
        7
    hastelloy  
       2016-11-01 06:29:11 +08:00 via Android
    idxmax 为您服务
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2908 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:23 · PVG 17:23 · LAX 02:23 · JFK 05:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.