- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据框中有 65 K 条记录,例如下面的代码片段:
Scrip Timestamp1 NSETS NSEPr Buyq1 Buyq2 Buyq3 Buyq4 Buyq5 Sellq1 Sellq2 Sellq3 Sellq4 Sellq5 Sellp1 Sellp2 Sellp3 Sellp4 Sellp5 buyp1 buyp2 buyp3 buyp4 buyp5 ActPr TotalBuyQty TotalSellQty
ALANKIT 2018-01-12 13:02:06 2018-01-12 13:00:50 78.10 759.00 100.00 996.00 1287.00 200 15.00 300.00 100.00 1787.00 5614.00 78.25 78.35 78.40 78.45 78.50 78.10 78.05 78.00 77.80 77.75 78.25 63928 194206
ALANKIT 2018-01-12 13:32:29 2018-01-12 13:22:21 79.50 28.00 100.00 200.00 1288.00 248 50.00 178.00 898.00 100.00 487.00 79.50 79.55 79.60 79.65 79.75 79.30 79.15 79.10 79.05 78.80 79.20 61927 175983
ALANKIT 2018-01-12 13:36:26 2018-01-12 13:34:51 79.20 39.00 3649.00 1287.00 7.00 11 1500.00 1024.00 1000.00 220.00 65.00 79.20 79.25 79.50 79.55 79.60 79.15 79.00 78.85 78.65 78.55 79.00 65503 176990
ALANKIT 2018-01-12 14:32:29 2018-01-12 14:31:23 78.80 810.00 1000.00 1287.00 1342.00 555 58.00 20.00 100.00 10.00 1250.00 78.80 78.85 78.90 78.95 79.00 78.70 78.60 78.55 78.50 78.30 78.70 84405 184759
ALANKIT 2018-01-12 14:12:58 2018-01-12 14:11:22 78.50 1.00 5.00 100.00 25.00 510 2542.00 25.00 95.00 50.00 500.00 78.50 78.55 78.60 78.85 78.90 78.30 78.25 78.20 78.15 78.10 78.85 74505 189866
APEX 2018-03-05 14:14:30 2018-03-05 14:13:23 72.00 51.00 71.00 20.00 150 1.00 1.00 14.00 20.00 1108.00 690.00 690.15 690.80 690.95 691.00 689.60 689.55 689.45 689.15 689.00 0 35535 61963 690.00
APEX 2018-01-31 11:52:11 2018-01-31 11:50:48 100.00 10.00 10.00 15.00 50 50.00 50.00 10.00 16.00 67.00 621.15 621.20 621.40 621.80 621.95 619.50 619.00 618.00 617.00 616.50 0 8083 25609 619.50
APEX 2018-01-31 11:56:14 2018-01-31 11:54:48 38.00 29.00 67.00 174.00 124 53.00 50.00 50.00 16.00 25.00 625.00 625.40 625.45 626.00 626.90 623.95 623.90 623.50 623.45 623.00 0 12587 23399 624.00
APEX 2018-01-18 09:36:03 2018-01-18 09:35:14 38.00 46.00 67.00 226.00 6 5.00 50.00 36.00 20.00 30.00 781.00 781.80 781.85 781.95 782.00 780.20 780.15 780.05 780.00 779.95 782.70 17023 21946 780.75
APEX 2018-01-18 09:44:16 2018-01-18 09:42:15 47.00 50.00 25.00 67.00 2887 25.00 8.00 58.00 5.00 50.00 791.60 791.65 791.95 792.30 792.65 790.20 790.15 790.00 789.05 789.00 791.45 22314 26007 790.05
STRTECH 2018-01-19 14:57:51 2018-01-19 14:56:24 68.50 1.00 5.00 2.00 3 3.00 20.00 3.00 5.00 10.00 2484.95 2485.00 2489.00 2489.90 2490.00 2477.55 2477.50 2477.20 2477.05 2476.70 2480.60 32408 8565 2485.00
STRTECH 2018-01-25 10:50:10 2018-01-25 10:47:46 32.65 1.00 511.00 1.00 12 9.00 5.00 100.00 23.00 20.00 2484.60 2484.70 2484.80 2485.00 2486.00 2480.15 2480.10 2480.00 2475.00 2471.15 2534.60 28306 18002 2484.70
在相同的脚本和相同的日期(来自字段Timestamp1)中,我想查询所有记录并返回满足2个复杂条件的记录。
这些条件是:
a)NSEPr 值应比那一天的 NSEPr 第一个值至少高 3.5%(可以从此处的 Timetamp1 中提取日期)
b) SellQ1 + SellQ2..(直到Sell 5)的值(value)总和应为 3 倍(或高于 BuyQ1 + BuyQ2..(直到BuyQ5)的值(value)总和。
我设法使用 df['mydt'] = df.Timestamp1.dt.date..
从 timestamp1 中提取日期我尝试使用 for 循环和 df.iterrows() 来实现上述任务,即遍历 Df。由于无限循环而失败。
我记得上面的内容可以使用 df.groupby['Scrip','mydt'].apply 实现或者也许通过使用 df.groupby['scrip','mydt'].apply(lambda x
但是我无法找到解决方案。我非常感谢对上述问题的一些帮助。
TIA。
最佳答案
它看起来像:
# get the first values per scrip and day
df_a_first_vals= df.groupby([df['Timestamp1'].dt.date, df['Scrip']]).agg({'NSEPr': 'first'})
# create an indexer for condition b and extract the
# corresponding data with the date stored in a separate
# column
df_b_indexer= df[['Sellq1', 'Sellq2', 'Sellq3', 'Sellq4', 'Sellq5']].sum(axis='columns') >= df[['Buyq1', 'Buyq2', 'Buyq3', 'Buyq4', 'Buyq5']].sum(axis='columns')*3
df_b_data= df[df_b_indexer].copy(deep=True)
df_b_data['Timestamp1_date']= df_b_data['Timestamp1'].dt.date
# merge a and b to apply condition a
df_ab_merged= df_b_data.merge(df_a_first_vals, left_on=['Timestamp1_date', 'Scrip'], right_index=True, suffixes=['', '_first'])
# output the result
df_ab_merged[df_ab_merged['NSEPr']>=df_ab_merged['NSEPr_first']*1.035]
您的数据似乎不包含这样的记录,因此我只是将 (APEX, 2018-01-31T11:52:11)
的 NSEPr 值从 100.00 更改为 20.00。然后上面的逻辑输出当天的第二行:
Out[148]:
Scrip Timestamp1 NSETS NSEPr ... TotalBuyQty TotalSellQty Timestamp1_date NSEPr_first
7 APEX 2018-01-31 11:56:14 2018-01-31 11:54:48 38.0 ... 23399 624.0 2018-01-31 20.0
[1 rows x 29 columns]
顺便说一句,如果您的数据非常大并且您想避免上面的深层复制,您可以将 Timestamp1
的日期部分存储为单独的列。
测试数据(我只是手动更改了倒数第二条记录,所以它符合条件):
raw="""Scrip Timestamp1 NSETS NSEPr Buyq1 Buyq2 Buyq3 Buyq4 Buyq5 Sellq1 Sellq2 Sellq3 Sellq4 Sellq5 Sellp1 Sellp2 Sellp3 Sellp4 Sellp5 buyp1 buyp2 buyp3 buyp4 buyp5 ActPr TotalBuyQty TotalSellQty
ALANKIT 2018-01-12T13:02:06 2018-01-12T13:00:50 78.10 759.00 100.00 996.00 1287.00 200 15.00 300.00 100.00 1787.00 5614.00 78.25 78.35 78.40 78.45 78.50 78.10 78.05 78.00 77.80 77.75 78.25 63928 194206
ALANKIT 2018-01-12T13:32:29 2018-01-12T13:22:21 79.50 28.00 100.00 200.00 1288.00 248 50.00 178.00 898.00 100.00 487.00 79.50 79.55 79.60 79.65 79.75 79.30 79.15 79.10 79.05 78.80 79.20 61927 175983
ALANKIT 2018-01-12T13:36:26 2018-01-12T13:34:51 79.20 39.00 3649.00 1287.00 7.00 11 1500.00 1024.00 1000.00 220.00 65.00 79.20 79.25 79.50 79.55 79.60 79.15 79.00 78.85 78.65 78.55 79.00 65503 176990
ALANKIT 2018-01-12T14:32:29 2018-01-12T14:31:23 78.80 810.00 1000.00 1287.00 1342.00 555 58.00 20.00 100.00 10.00 1250.00 78.80 78.85 78.90 78.95 79.00 78.70 78.60 78.55 78.50 78.30 78.70 84405 184759
ALANKIT 2018-01-12T14:12:58 2018-01-12T14:11:22 78.50 1.00 5.00 100.00 25.00 510 2542.00 25.00 95.00 50.00 500.00 78.50 78.55 78.60 78.85 78.90 78.30 78.25 78.20 78.15 78.10 78.85 74505 189866
APEX 2018-03-05T14:14:30 2018-03-05T14:13:23 72.00 51.00 71.00 20.00 150 1.00 1.00 14.00 20.00 1108.00 690.00 690.15 690.80 690.95 691.00 689.60 689.55 689.45 689.15 689.00 0 35535 61963 690.00
APEX 2018-01-31T11:52:11 2018-01-31T11:50:48 20.00 10.00 10.00 15.00 50 50.00 50.00 10.00 16.00 67.00 621.15 621.20 621.40 621.80 621.95 619.50 619.00 618.00 617.00 616.50 0 8083 25609 619.50
APEX 2018-01-31T11:56:14 2018-01-31T11:54:48 38.00 29.00 67.00 174.00 124 53.00 50.00 50.00 16.00 25.00 625.00 625.40 625.45 626.00 626.90 623.95 623.90 623.50 623.45 623.00 0 12587 23399 624.00
APEX 2018-01-18T09:36:03 2018-01-18T09:35:14 38.00 46.00 67.00 226.00 6 5.00 50.00 36.00 20.00 30.00 781.00 781.80 781.85 781.95 782.00 780.20 780.15 780.05 780.00 779.95 782.70 17023 21946 780.75
APEX 2018-01-18T09:44:16 2018-01-18T09:42:15 47.00 50.00 25.00 67.00 2887 25.00 8.00 58.00 5.00 50.00 791.60 791.65 791.95 792.30 792.65 790.20 790.15 790.00 789.05 789.00 791.45 22314 26007 790.05
STRTECH 2018-01-19T14:57:51 2018-01-19T14:56:24 20.50 1.00 5.00 2.00 3 3.00 20.00 3.00 5.00 10.00 2484.95 2485.00 2489.00 2489.90 2490.00 2477.55 2477.50 2477.20 2477.05 2476.70 2480.60 32408 8565 2485.00
STRTECH 2018-01-19T15:50:10 2018-01-25T10:47:46 32.65 1.00 511.00 1.00 12 9.00 5.00 100.00 23.00 20.00 2484.60 2484.70 2484.80 2485.00 2486.00 2480.15 2480.10 2480.00 2475.00 2471.15 2534.60 28306 18002 2484.70"""
df= pd.read_csv(io.StringIO(raw), sep='\s+', parse_dates=['Timestamp1', 'NSETS'], index_col=None)
结果:
Out[212]:
Scrip Timestamp1 NSETS NSEPr ... TotalBuyQty TotalSellQty Timestamp1_date NSEPr_first
11 STRTECH 2018-01-19 15:50:10 2018-01-25 10:47:46 32.65 ... 18002 2484.7 2018-01-19 20.5
[1 rows x 29 columns]
关于python - Pandas:满足类别内多个条件的所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542174/
我想检索具有多个条件的数据,其中每个条件将在特定字段中包含特定关键字。 表结构如下: sid nid cid 数据 50 7 5 ee 50 7 6 AA 50 7 8 ff 51 7 5 ee 51
在 Prolog 中,我经常通过提供模板(包含变量的结构)然后满足其上的一组约束来解决问题。一个简单的例子可能是: go(T) :- T = [_, _, _], member(cat
在设计 FPGA 系统时,我如何粗略估计给定任务所需的逻辑 block 数量? 有人对我对这些常见设备的期望有一个粗略的数量级吗? 串口 使用 CRC32 的数据包解帧器 8 微核 我看过 www.o
我需要编写一段代码,如果函数满足列表中的大多数元素,则返回 True,不满足其中的 false。例如:moreThan odd [1,2,3] 是 True,但是 moreThan odd [1,2,
一旦满足三个条件,我需要使用 componentWillReceiveProps() 来调用我的组件中的方法。其中两个条件将当前 Prop 与下一个 Prop 进行比较,这两个条件通过 Ajax 请求
我正在构建一个主从表单。主视图模型构造细节 View 模型的实例。这些细节 View 模型有几个依赖项,需要用新 类实例来满足。 (这是因为他们需要在独立于主虚拟机的数据上下文中运行的服务层。) 实现
我有以下项目,我已经使用了一段时间。正如您在运行 snnipets 后看到的那样,一切正常。 /* The dark background behind the dialogs */ .dialog-
我正在尝试找出解决此问题的方法: 我想要一个函数来检查文本字段是否填充了文本并且复选框是否被选中。当满足这些条件时,“提交”按钮将启用。如果启用“提交”按钮后不久,用户清除文本字段或取消选中复选框,则
所以我相对较新,我有以下代码,我想知道如何制作这样我可以返回临时变量,同时满足java的返回要求。我希望返回临时值,但由于它位于 if-else block 内,因此从技术上讲,它不会在其外部初始化。
我正在编写一个脚本,该脚本读取文本文件并根据 .txt 文件的内容更改 div 中的文本。 但这不是我的问题。我不想要纯文本,背景颜色应该根据满足 if/elseif/else 函数的条件而改变。 v
我想在 if let 构造中满足多个约束。我知道我们可以使用“,”(逗号)来解包多个值,但它们都必须成功解包。 例如: var str: String? = "Hello" var x: Int? =
当我在 genymotion 模拟设备上安装我的应用程序时,它无法很好地安装,在控制台上我得到“INSTALL_FAILED_CPU_ABI_INCOMPATIBLE”我尝试了另一个应用程序,它安装得
因此,我试图根据数据帧的匹配条件来查看数据帧的两个变量(v1 和 v2)是否在其符号(正数或负数)中匹配变量(ID1==ID2)。 示例数据框 - Trial.df: ID1 v1
如果交付一个 Java 应用程序,它使用 gradle 依赖管理和许多来自 maven-central 的开源库,是否足以检查第一级 depedencies 的许可证(因为他们的依赖关系必须再次自动与
我正在尝试创建一个满足接口(interface) Iterable 的类“Gprogram” (这样我就可以在我的 Gprogram 中迭代 Gcommand)。但是,我只能使用类型 Iterable
我想知道是否可以获得一些帮助。 我试图在查询中写入一个查询,我使用 3 个字段:ID、选项和金额。 我需要对我的唯一 ID 进行分组,然后在该组中我需要按选项白色进行拆分,总计每个选项的金额。例如:编
如何在iOS swift项目中配置Jitsi-meet框架开启视频通话服务? 最佳答案 编辑:这也适用于 Xcode Version 12.2 (12B45b)在 Mac OS Big Sur 上。
我正在玩一些交互式菜单,目前有一个隐藏菜单,当按下一个按钮时,它会从右边出现,并将整个内容移到上面。有点像移动 facebook 应用程序。为了确定按钮应该将菜单滑出还是放回我使用 javascrip
我的目标很简单,使用遗传算法重现经典的“Hello, World”字符串。 我的代码基于此 post .代码主要包含4个部分: 生成具有多个不同个体的种群 根据与target的比较,定义评估个体好坏的
问题陈述 我们有一个雇主想要面试 N 个人,因此安排了 N 个面试时段。每个人都有这些时段的忙闲时间表。给出一个算法,如果可能的话将 N 个人安排到 N 个槽位,如果不可能则返回一个标志/错误/等。最
我是一名优秀的程序员,十分优秀!