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
kangsgo
V2EX  ›  Python

请问一下 pandas 如何统计每一行元素的个数

  •  
  •   kangsgo · 2018-03-23 15:54:12 +08:00 · 6044 次点击
    这是一个创建于 2443 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是我有一个表格,大致像下面这样子:

    |     |  0  |  1  |  2  |  3  |  4  |  5  |
    | --- | --- | --- | --- | --- | --- | --- |
    |  1  |  A  |  A  |  B  |  B  |  A  |  B  |
    |  2  |  B  |  A  |  B  |  A  |  A  |  A  |
    ....
    

    我需要统计每一行的 A,B 的个数或者 A,B 在这一行所占的百分比,有什么好的办法么

    (比如上面的例子 1 有 3 个 A,3 个 B; 2 有 4 个 A,2 个 B )

    perdata.apply(lambda x:x.count('~'),axis=0)
    

    提示如下:

    KeyError: ('Level ~ must be same as name (None)', 'occurred at index 0')
    

    谢谢

    4 条回复    2018-03-23 16:34:47 +08:00
    ipwx
        1
    ipwx  
       2018-03-23 16:03:47 +08:00   ❤️ 1
    In [1]: import pandas as pd
    In [2]: df = pd.DataFrame([list('AABBAB'), list('BABAAA')])

    In [3]: df
    Out[3]:
    0 1 2 3 4 5
    0 A A B B A B
    1 B A B A A A

    In [4]: df == 'A'
    Out[4]:
    0 1 2 3 4 5
    0 True True False False True False
    1 False True False True True True

    In [5]: (df == 'A').sum(axis=1)
    Out[5]:
    0 3
    1 4
    dtype: int64
    kangsgo
        2
    kangsgo  
    OP
       2018-03-23 16:09:09 +08:00
    @ipwx 非常感谢~牛!
    congeec
        3
    congeec  
       2018-03-23 16:29:27 +08:00 via iPhone   ❤️ 1
    虽然问题解决了,还是建议了解一下
    from collections import Counter
    epicnoob
        4
    epicnoob  
       2018-03-23 16:34:47 +08:00   ❤️ 1
    >>> pandas.value_counts(df.iloc[0])
    B 3
    A 3
    Name: 0, dtype: int64
    >>> pandas.value_counts(df.iloc[1])
    A 4
    B 2
    Name: 1, dtype: int64
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:11 · PVG 14:11 · LAX 22:11 · JFK 01:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.