Python Pandas Dataframe 同比比较

标签 python pandas analytics

我是 Pandas 的新手,但拥有非常强大的 SQL 背景。我实际上知道如何在 Excel 和 SQL 中执行此操作,但想了解如何在 Pandas 中执行此操作以帮助我学习。我尝试提前阅读“Python for Data Analysis”,我已经完成了 Coursera Pandas 类(class)的 1/2,但这远远超出了我的技能范围。

我想看看如何在 Pandas 中做的是我们为客户制造某些零件所花费的时间的逐年变化。

输出将如下所示:

Year  Shipped_Part_No  Shipped_Part_Rev  Labor_Hours       Gross Margin
                                        Min Max Avg Sdev   Min Max Avg Sdev
2013  Widget1           AM              0   3   2.1  1.8  -.18  .1  .18  .18
2014  Widget1           AM              2   7   2.9  1.2  -.1   .2  .28  .11
2015  Widget1           AM              1   2   2.2  1.4  -.13  .3  .81  .12

据我所知,我需要将索引设置为 ['Shipped_Part_No'] 和 ['Shipped_Part_Rev'],然后进行一些分组并运行一些聚合函数。

我愿意接受任何关于如何思考这个问题或如何显示它以提高可读性的指示 - 我的思想是如此专注于 SQL,我很难了解如何使用数据框架来完成它。

我有一个来 self 编写的 SQL 查询的 CSV 输出文件,该文件位于此处:

https://drive.google.com/open?id=0B4xdnV0LFZI1czBUT19YanVPNFk

通常我会发布一些我至少尝试过的代码,但它一直失败,所以我认为这没有帮助。

我在 Windows PC 上运行带有 Python 3.5 的 Anaconda。

最佳答案

试试这个:

In [168]: (df.groupby([df.Ship_Date.dt.year,'Shipped_Part_No', 'Shipped_Part_Rev'])
     ...:     [['Labor_Hours','Gross_Margin']]
     ...:    .agg(['min','max','mean','std']))
     ...:
Out[168]:
                                           Labor_Hours                      Gross_Margin
                                                   min max  mean        std          min   max  mean  std
Ship_Date Shipped_Part_No Shipped_Part_Rev
2013      Widget1         AM                         9  68  38.5  41.719300        -0.11 -0.11 -0.11  0.0
2014      Widget1         AM                         2   6   4.0   2.828427        -0.11 -0.11 -0.11  0.0
2015      Widget1         AM                         1  43  10.6  18.174157        -0.11 -0.11 -0.11  0.0

PS 上述解决方案假设 Ship_Date 列的数据类型类似于日期时间

关于Python Pandas Dataframe 同比比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40640912/

相关文章:

python - 我可以获取 DataFrame 中给定位置的字符串索引和列名吗?

python - NLTK包,未定义标签

java - Web 应用服务器监控

python - 如何计算列的唯一组合的元素频率并存储在 Dataframe 的另一列中?

python - 名称错误 : name 'index' is not defined

python - 如何将多个参数传递给 apply 函数

python - 如何将嵌套的JSON下载到pandas数据框中?

python - 如何分组并绘制它

regex - 是否可以为其创建正则表达式;着陆页包含“test = EMC”,并以placement_id =结尾

python - Django Rest 框架 HyperLinkedRelatedField : allow id instead of url for POSTS requests