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

pandas 生成一列是另一列的累加结果,怎么做

  •  
  •   sylvos · 2016-09-15 09:42:58 +08:00 via iPhone · 11193 次点击
    这是一个创建于 2977 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请前辈指点下
    比如a=[1.2.3.4]
    生成的要[1.3.6.10]
    11 条回复    2016-09-15 15:51:09 +08:00
    GavinFlying
        1
    GavinFlying  
       2016-09-15 10:07:15 +08:00
    如果是 Pandas :

    ```python
    num_list = [1, 2, 3, 4]
    df = pd.DataFrame(data=num_list)
    df.cumsum()
    ```

    如果不用 Pandas:

    ```python
    num_list = [1, 2, 3, 4]
    [sum(num_list[:idx]) for idx in range(1, len(num_list) + 1)]
    ```
    sylvos
        2
    sylvos  
    OP
       2016-09-15 10:10:12 +08:00 via iPhone
    谢谢,前辈,第一个是我想要的,非常感谢啊,我原来还想 reduce 什么的
    sylvos
        3
    sylvos  
    OP
       2016-09-15 10:11:09 +08:00 via iPhone
    @GavinFlying
    谢谢,第一个是我想要的,非常感谢啊,我原来还想 reduce 什么的
    sylvos
        4
    sylvos  
    OP
       2016-09-15 10:24:00 +08:00 via iPhone
    @GavinFlying 可以再问你个 pandas 问题吗?生成累加列,因为之前 groupby 过,如何还原回去。就是要与 groupby 之前的数据结构一致
    sylvos
        5
    sylvos  
    OP
       2016-09-15 10:32:35 +08:00 via iPhone
    @GavinFlying 我想到的笨办法是把 groupby 的结果用 pd.concat 接合起来
    GavinFlying
        6
    GavinFlying  
       2016-09-15 10:36:15 +08:00
    @sylvos Sorry, 并不懂...感觉应该要自己实现
    dgkae
        7
    dgkae  
       2016-09-15 11:08:39 +08:00
    厉害哦
    imn1
        8
    imn1  
       2016-09-15 12:35:09 +08:00
    这些类似的逐行计算的,属于移动统计范畴,你需要看 pandas 手册, computational tools 这一章
    mfinal
        9
    mfinal  
       2016-09-15 13:08:00 +08:00
    @sylvos groupby 一般是不可逆的,不确定你想变回原来什么样子,因为原 df 是不受影响的,可能你需要试试 reset_index ,在 stackoverflow 上都有
    sylvos
        10
    sylvos  
    OP
       2016-09-15 15:50:48 +08:00 via iPhone
    @mfinal 因为我需要把前面得到的累加列更新到原 df 里面,但又只能单 group 做累加。
    sylvos
        11
    sylvos  
    OP
       2016-09-15 15:51:09 +08:00 via iPhone
    @imn1 谢谢你
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1580 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:10 · PVG 01:10 · LAX 09:10 · JFK 12:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.