- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图将公司交易量的平均值与同一家公司的每日交易量进行比较,并找出 Pandas 的差异。我已经对公司进行了分组,并获得了每个公司数量的平均值。我希望将平均值与同一家公司的每日交易量进行比较。
下面的代码是:
vol_grp.mean()
输出是:
Volume
Company
20MICRONS 947802.086957
3MINDIA 3881.608696
5PAISA 69606.521739
AAKASH 49254.217391
AARON 46435.583333
... ...
ZODJRDMKJ 50541.666667
ZOTA 36271.130435
ZUARI 285558.652174
ZUARIGLOB 149646.347826
ZYDUSWELL 72017.826087
1397 rows × 1 columns
实际数据是
Date Company Volume
1 03-MAY-2021 20MICRONS 192281
4 03-MAY-2021 3MINDIA 1707
7 03-MAY-2021 5PAISA 81581
16 03-MAY-2021 AAKASH 35865
17 03-MAY-2021 AARON 1255
... ... ... ...
47160 03-JUN-2021 ZODIACLOTH 75966
47162 03-JUN-2021 ZOTA 470978
47163 03-JUN-2021 ZUARI 137563
47164 03-JUN-2021 ZUARIGLOB 51545
47165 03-JUN-2021 ZYDUSWELL 24350
例如,我有 20MICRONS 公司的意思,我想与 20MICRONS 公司的每日交易量进行比较。如果我有 20MICRONS 体积的 30 天信息,我的平均值应该与这 30 个值进行比较,并且应该返回 30 个差异值。对于所有其他公司也是如此
最佳答案
所以我创建了这个示例 df
from datetime import datetime as dt
import pandas as pd
from numpy.random import randint
df = pd.DataFrame(dict(date= [dt(2021,1,i) for i in [1]*4+[2]*4+[3]*4],
company= ["AAPL", "FB", "NVDA", "AMZN"]*3,
volume= [randint(100,10000) for _ in range(12)]))
df
date company volume
0 2021-01-01 AAPL 1470
1 2021-01-01 FB 7478
2 2021-01-01 NVDA 9156
3 2021-01-01 AMZN 5972
4 2021-01-02 AAPL 9836
5 2021-01-02 FB 1990
6 2021-01-02 NVDA 5380
7 2021-01-02 AMZN 1338
8 2021-01-03 AAPL 9235
9 2021-01-03 FB 3708
10 2021-01-03 NVDA 480
11 2021-01-03 AMZN 2805
然后我创建了一个组,并且能够以与您相同的方式获取每个公司的平均值:
grp = df.groupby("company")
grp.mean()
volume
company
AAPL 6847.000000
AMZN 3371.666667
FB 4392.000000
NVDA 5005.333333
然后我只是将平均系列与原始 df 合并:
# on = "company" will make it align the values on the company values
merged = df.merge(grp.mean(), on= "company", suffixes= ("_daily", "_mean"))
merged
date company volume_daily volume_mean
0 2021-01-01 AAPL 1470 6847.000000
1 2021-01-02 AAPL 9836 6847.000000
2 2021-01-03 AAPL 9235 6847.000000
3 2021-01-01 FB 7478 4392.000000
4 2021-01-02 FB 1990 4392.000000
5 2021-01-03 FB 3708 4392.000000
6 2021-01-01 NVDA 9156 5005.333333
7 2021-01-02 NVDA 5380 5005.333333
8 2021-01-03 NVDA 480 5005.333333
9 2021-01-01 AMZN 5972 3371.666667
10 2021-01-02 AMZN 1338 3371.666667
11 2021-01-03 AMZN 2805 3371.666667
最后,我通过做一个很好的旧减法来创建差异列:
merged["difference"] = merged["volume_daily"] - merged["volume_mean"]
merged
date company volume_daily volume_mean difference
0 2021-01-01 AAPL 1470 6847.000000 -5377.000000
1 2021-01-02 AAPL 9836 6847.000000 2989.000000
2 2021-01-03 AAPL 9235 6847.000000 2388.000000
3 2021-01-01 FB 7478 4392.000000 3086.000000
4 2021-01-02 FB 1990 4392.000000 -2402.000000
5 2021-01-03 FB 3708 4392.000000 -684.000000
6 2021-01-01 NVDA 9156 5005.333333 4150.666667
7 2021-01-02 NVDA 5380 5005.333333 374.666667
8 2021-01-03 NVDA 480 5005.333333 -4525.333333
9 2021-01-01 AMZN 5972 3371.666667 2600.333333
10 2021-01-02 AMZN 1338 3371.666667 -2033.666667
11 2021-01-03 AMZN 2805 3371.666667 -566.666667
DataFrame.merge docs
merged["%_diff"] = merged["difference"]/merged["volume_mean"]*100
merged
date company volume_daily volume_mean difference %_diff
0 2021-01-01 AAPL 1470 6847.000000 -5377.000000 -78.530743
1 2021-01-02 AAPL 9836 6847.000000 2989.000000 43.654155
2 2021-01-03 AAPL 9235 6847.000000 2388.000000 34.876588
3 2021-01-01 FB 7478 4392.000000 3086.000000 70.264117
4 2021-01-02 FB 1990 4392.000000 -2402.000000 -54.690346
5 2021-01-03 FB 3708 4392.000000 -684.000000 -15.573770
6 2021-01-01 NVDA 9156 5005.333333 4150.666667 82.924880
7 2021-01-02 NVDA 5380 5005.333333 374.666667 7.485349
8 2021-01-03 NVDA 480 5005.333333 -4525.333333 -90.410229
9 2021-01-01 AMZN 5972 3371.666667 2600.333333 77.123085
10 2021-01-02 AMZN 1338 3371.666667 -2033.666667 -60.316362
11 2021-01-03 AMZN 2805 3371.666667 -566.666667 -16.806723
关于python - 我试图将公司交易量的平均值与同一家公司的每日交易量进行比较,并找出 Pandas 的差异。我在 company 上做了 groupby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67827101/
我有以下完整查询,但它什么也没返回。 @companies.where("(companies.status = 'active' AND (companies.status_override = '
我知道 Android 中包名称的标准约定是 com.companyname.project ....等等我想知道对于总部设在以色列的公司来说,使用 il.co 是否有意义,特别是因为我有一个使用 .
我将公司放在引号之间,因为我的问题与我们的橄榄球队页面有关,但在 Facebook 中,它的作用就像公司页面。 我目前正在重建我的团队网站 ( BBRFC Celtic ),并且我将添加一个用户登录系
我们升级(从 MongoDB 3.4)到: MongoDB:4.2.8 Mongoose :5.9.10 现在我们收到了这些错误。对于最小的例子,模型是: [company.js] 'use stri
我有一个基础实体类MyCompany.Core.Model.User,该类将用于User实体的常用属性: public class User { public string Username
我已将静态(无 servlet、jsp 等)网站加载到 Tomcat 的 webapps 文件夹中。 我在 webapps/ourcompany 下有一个 index.html 文件,所以当我在 to
我正在从头设计一个网络驱动的 SQL 数据库应用程序。该应用程序将为同类行业的客户管理信息。换句话说,关于每个客户的信息(实体和它们之间的关系)在一个到另一个客户之间没有太大差异。但是,信息量取决于公
我有以下类(class): @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Party", propOrder = { "comp
(我将首先解释我的问题。下表(任何示例查询)可在 http://sqlfiddle.com/#!2/8ec17/4 获得) 我有一张股票信息表,如下: sp100_id _date
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 6年前关闭。 Improve t
我决定将自己的 Prelude 用于更大的项目(包含一些库和一些可执行文件)。 Prelude 不导出一些部分函数,而是导出一些常用函数(即来自 Control.Monad 等)。然而,我正在与如
我正在使用 Joomla 的 JSN Uniform 插件来接收电子邮件,但它不接受 .company 域作为有效域。它接受常用域(com、net、org、info、biz 等),但不接受 .comp
我正在尝试让这个 API 正常工作,但遇到了这个我不知道如何解决的错误。我在标题上收到错误。我使用了来自谷歌浏览器的 postman 扩展。并尝试执行发布请求在 localhost:3000/comp
我在测试 Django RestFramework 时遇到问题。我有以下测试: def test_update_coupon(self): response = self.make_c
console.log(profile); 效果很好,它显示了这一点。 但是当我使用 console.log(profile.company);获取公司名称。 它向我展示了 Cannot read p
这似乎是一个微不足道的问题。我需要知道,如果我在值(value) 99 美元的 iOS 开发者计划:公司 下注册我的公司,我现在可以在同一家公司下添加开发者。 我的问题是,这些开发者是否还需要分别拥有
我无法再在 Android 上启动我的应用程序。 iOS 版本似乎没问题。完整的错误是: ADB0000: Could not determin the installation path for p
我为大型 Java/Maven 项目安装了新的 Emacs(在 Windows 上)。 已安装 Eclipse 和 eclim(带 java 层的 spacemacs 更新到最新版本,company-
我正在阅读基于最新版本的 iOS 的 VPN On Demand 功能。 这里的问题是:我们运行 VPN 来访问内部托管在子域上的 WebApp,例如 salexxx.company.net ,该子域
我开发了一个 Java 数据库应用程序,该应用程序已通过 Web 服务器部署给用户。现在,一切都很好,但我们要求一些外部客户也希望访问该软件。有什么方法可以让该应用程序为这些客户工作吗?该应用程序已放
我是一名优秀的程序员,十分优秀!