V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
bleutail
V2EX  ›  Python

pandas 相关, k 线数据加工,用 resample 寻找价格最值相应时间遇到问题。

  •  
  •   bleutail · 2022-06-08 17:38:28 +08:00 · 1533 次点击
    这是一个创建于 904 天前的主题,其中的信息可能已经有所发展或是发生改变。
    def func1(x):
            try:
                    return x.index[x.argmax()]
            except:
                    return -999
    def func2(x):
            try:
                    return x.index[x.argmin()]
            except:
                    return -999
    df_origin['high_time'] = (df['last'].resample(label='right', closed='right',rule=period).agg(lambda x:func1(x))) 
    df_origin['low_time'] = (df['last'].resample(label='right', closed='right',rule=period).agg(lambda x:func2(x)))
    

    原表是一个时间顺序的价格序列 如果不写 try except 的话 x.index[x.argmax()]会因为 resample 遇到非交易时间段会自动切割出空值,argmax 在空值会报错。感觉方法不好,想请教下正确思路。。

    2 条回复    2022-06-08 19:57:24 +08:00
    milkpuff
        1
    milkpuff  
       2022-06-08 19:10:59 +08:00
    用 groupby ,aggregate
    group = data.groupby(data.index.values.astype(f'datetime64[{period}]').astype('datetime64[ns]'))
    data = group.agg({
    'open': 'first',
    'high': 'max',
    'low': 'min',
    'close': 'last',
    'volume': 'sum'
    })
    bleutail
        2
    bleutail  
    OP
       2022-06-08 19:57:24 +08:00
    @milkpuff 谢谢回复,不过需要的是该时段中最高价格的时刻
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3474 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:46 · PVG 12:46 · LAX 20:46 · JFK 23:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.