Date Symbol Open High Low Close
0 2023-05-31 GEDIK.IS 7.90 8.01 7.77 7.87
1 2023-06-01 GEDIK.IS 7.92 8.20 7.89 8.14
2 2023-05-31 MIPAZ.IS 7.87 7.90 7.74 7.84
3 2023-06-01 MIPAZ.IS 7.84 8.06 7.80 8.05
4 2023-05-31 SUNTK.IS 36.20 37.52 35.48 37.00
5 2023-06-01 SUNTK.IS 37.20 38.30 36.60 38.30
6 2023-05-31 VANGD.IS 7.26 7.36 6.95 7.08
7 2023-06-01 VANGD.IS 7.09 7.63 6.92 7.48
我想从这个数据框中过滤股票,其中当天(06-01)有一个积极的蜡烛(关闭>打开),并创建一个与前一天的LL。在这个例子中,它应该只返回VANGD。我可以通过以下方式过滤LL
df.groupby(['Symbol']).apply(lambda x: x[x["Low"] > x["Low"].shift(-1)])
但是,这只返回匹配股票的第一行。我需要整个团队。
Date Symbol Open High Low Close
Symbol
VANGD.IS 6 2023-05-31 VANGD.IS 7.26 7.36 6.95 7.08
比我能用积极的蜡烛过滤股票。在这个例子中也只有4只股票。请记住,原来的df有近500支股票要过滤。
非常感谢。
1条答案
按热度按时间cuxqih211#
看起来您想提取匹配的Symbol名称,然后
.isin()
查找所有对应的行。如果符号都是相邻的,您可以通过比较移位的符号来替换
.groupby().apply
: