跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 求教 pandas 相关,最快找到某列中与上一行不同正负号的行,不用 for 应该怎么写?
未分類
6 9 月 2020

求教 pandas 相关,最快找到某列中与上一行不同正负号的行,不用 for 应该怎么写?

求教 pandas 相关,最快找到某列中与上一行不同正负号的行,不用 for 应该怎么写?

資深大佬 : yellowtail 9

https://imgchr.com/i/wh0yqK

也就是找到 macd 出现金叉的位置

大佬有話說 (12)

  • 資深大佬 : yech1990

    大概这样

    df.rolling(window=2).agg(lambda x : x.prod()<0)

  • 主 資深大佬 : yellowtail

    没有看懂,但是确实实现了…谢谢大哥!

  • 主 資深大佬 : yellowtail

    @yech1990 没有看懂,但是确实实现了…谢谢大哥!

  • 資深大佬 : zxCoder

    @yech1990 好强啊

  • 資深大佬 : imn1

    凡是有序的列(主要指 index 有序),值有前后相关的,用 rolling/window 函数就对了

  • 主 資深大佬 : yellowtail

    @imn1 反正这一套 rolling 后接 agg 加 lambda prod 的操作看得我高山仰止 钦佩之情滔滔不绝…

  • 資深大佬 : lychs1998

    对 1 大佬写的语句的简单解析:

    df.rolling(window=2).agg(lambda x : x.prod()<0)

    df.rolling(window=2) :window 是计算统计量的观测值的数量,这里是当前量和前一个数值(上一行)。

    x.prod() 返回乘积,相当于当前行乘以上一行,小于 0 表示符号不一样。

    .agg(lambda x : x.prod()<0) 对传入的数值按 lambda 表达式进行计算。

  • 資深大佬 : imn1

    @yellowtail #6
    我是觉得奇怪,macd 就是证券计算,那基本上都离不开移动函数,应该都会呀,不然你是怎么算移动平均的?

  • 主 資深大佬 : yellowtail

    @imn1 网上看到的都是 rolling 加 sum 和 mean… 我有样学样抄的 知其然不知其所以然的差距啊

  • 資深大佬 : kifile

    x[(x*x.shift(1)) < 0]

  • 主 資深大佬 : yellowtail

    @yech1990 再追问个问题,用 resample 处理 k 线合并(比如一分钟数据的 k 线,按 5 分周期取样,得到 5 分钟 k 线),但是 60 分钟以上的失败了,可能是因为中午休市时间的干扰,想问一下:有没有类似 rolling 的函数可以一段一段切分 df 的,比如窗口是 5,第一段就是 0-4,第二段是 5-9 这样的 谢谢!

  • 資深大佬 : yech1990

    不是很清楚“但是 60 分钟以上的失败了”是什么意思。如果 resample 函数不行,你可以试试用 pd.cut 函数

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具