gpt4 book ai didi

Python Pandas Dataframe 同比比较

转载 作者:行者123 更新时间:2023-12-02 06:08:23 25 4
gpt4 key购买 nike

我是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com