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

一个数据汇总统计的问题

  •  
  •   nbjbsjb · 2022-03-23 23:02:51 +08:00 · 2102 次点击
    这是一个创建于 1010 天前的主题,其中的信息可能已经有所发展或是发生改变。

    q3aZCD.jpg 已经用 pandas 从几张销售大表中把数据汇总到一张表中了,如图,(目前只有这个水平,噗),我目的是要及时跟进包材,品牌很多,每个品牌 10kg 到 15kg 共用一种包材,各品牌不通用,0.7 到 1kg 到共用同一种包材,各品牌通用。图上已经手工处理了数据。 我现在想用 python 完成这个统计工作,感觉无从下手,请各位前辈指教。 开始我想做一张包含所有规格的表,一一比对,但感觉太蠢了,见笑😜

    8 条回复    2022-03-25 17:30:44 +08:00
    skysuhey
        1
    skysuhey  
       2022-03-23 23:08:28 +08:00
    处理这种数据没必要用 Python ,Excel 不是更加直观便捷吗
    dlsflh
        2
    dlsflh  
       2022-03-23 23:41:14 +08:00 via Android
    想起了那个黑板上画 office 讲课的非洲老师。
    MTMT
        3
    MTMT  
       2022-03-23 23:44:14 +08:00   ❤️ 1
    ```python
    def get_type(row):
    if row['规格'].between(0.7,1):
    return '小包材'
    else:
    reutrn row['品牌名']+'_大包材'

    d['分类'] = d.apply(lambda get_type, axis=1)

    output = d[['分类', '数量']].groupby('分类').sum()
    ```
    MTMT
        4
    MTMT  
       2022-03-23 23:47:27 +08:00   ❤️ 1
    不知道 v2 支不支持 markdown ,上面缩紧都乱了,有一行改一下,凑合看吧

    d['分类'] = d.apply(get_type, axis=1)
    nbjbsjb
        5
    nbjbsjb  
    OP
       2022-03-24 07:24:29 +08:00 via iPhone
    @MTMT 谢谢,我研究一下
    gengchun
        6
    gengchun  
       2022-03-24 17:50:20 +08:00
    @skysuhey 现在有 qgrid 还有 plotly dash 这种交互式的,其实还可以。

    excel 太复杂的,其实也有不少问题。
    skysuhey
        7
    skysuhey  
       2022-03-24 22:34:35 +08:00
    @gengchun 学到了,不过对于 op 这种就一个 vlookup 分下类再 sum 求和就行了,感觉还是 Excel 简单点
    imn1
        8
    imn1  
       2022-03-25 17:30:44 +08:00   ❤️ 1
    分牌子 dataframe.groupby(['牌子'])
    分规格 dataframe.groupby(['规格'])
    分牌子及规格 dataframe.groupby(['牌子', '规格']) #注意有序

    groupby 可以简单看作一个把字段当成 index 的 dataframe ,然后操作,当然这个理解不严谨,详细请查阅手册关于 groupby 章节
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   972 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:35 · PVG 04:35 · LAX 12:35 · JFK 15:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.