python - Pandas 中的许多 If 语句
问题描述
我有一个股票数据框。并且有许多if
语句要运行来赋值。
c1 = np.where((blackCondition & whitePCondition) & (close_gt_oP & open_ge_cP),'UP',None)
c2 = np.where((blackCondition & whitePCondition) & (open_lt_cP & close_le_oP),'DOWN',None)
c3 = np.where((blackCondition & whitePCondition) & (close_gt_oP & open_lt_cP),'OUTSIDE',None)
c4 = np.where((blackCondition & whitePCondition) & (close_le_oP & open_ge_cP),'INSIDE',None)
#IF2
c5 = np.where((blackCondition & blackPCondition) & (open_gt_oP & close_ge_cP),'UP',None)
c6 = np.where((blackCondition & blackPCondition) & (close_lt_cP & open_le_oP),'DOWN',None)
c7 = np.where((blackCondition & blackPCondition) & (open_gt_oP & close_lt_cP),'OUTSIDE',None)
c8 = np.where((blackCondition & blackPCondition) & (open_le_oP & close_ge_cP),'INSIDE',None)
#IF3
c9 = np.where((whiteCondition & whitePCondition) & (close_gt_cP & open_ge_oP),'UP',None)
c10 = np.where((whiteCondition & whitePCondition) & (open_lt_oP & close_le_cP),'DOWN',None)
c11 = np.where((whiteCondition & whitePCondition) & (close_gt_cP & open_lt_oP),'OUTSIDE',None)
c12 = np.where((whiteCondition & whitePCondition) & (close_le_cP & open_ge_oP),'INSIDE',None)
#IF4
c13 = np.where((whiteCondition & blackPCondition) & (open_gt_cP & close_ge_oP),'UP',None)
c14 = np.where((whiteCondition & blackPCondition) & (close_lt_oP & open_le_cP),'DOWN',None)
c15 = np.where((whiteCondition & blackPCondition) & (open_gt_cP & close_lt_oP),'OUTSIDE',None)
c16 = np.where((whiteCondition & blackPCondition) & (open_le_cP & close_ge_oP),'INSIDE',None)
如何将语句的 TRUE VALUE 分配给列?
df['pos'] = 如果此陈述中的任何一个为真
前任:
if(c1) => df['pos'] = TRUE_CONDITION_OF_C1
解决方案
对于 pandas,我不知道这样做的一种非常优雅的方式。不过有几种选择。
您可以重复使用.loc[]
掩码,这很难看,或者您可以使用.map()
or.apply()
方法。
以下示例假定掩码无处为空,并且与 df 本身具有相同的形状。
df['pos'] = (
(blackCondition & whitePCondition)
& (close_gt_oP & open_ge_cP)
).map({True: "UP", False: "DOWN"})
那只会做第一行。
推荐阅读
- cucumber - 黄瓜运行时异常
- python - Django Rest Framework 列表和详细视图重叠
- vba - 根据 ID 组合来自 2 个工作表的数据,同时插入行
- c# - 开始后台工作的正确方法 ASP.NET MVC 5
- bash - 使用 tcpdump 重击损坏的管道
- firebase - 无法提供 Firebase 功能
- selenium-chromedriver - Brew 安装 chromedriver 不起作用?
- jquery - Jquery DataTable - 更改服务器端数据格式
- javascript - 每个用户的 Firebase 文档?
- javascript - 散景 HTML 模板格式化程序不起作用