我需要使用类似于从 Pandas DF 列获取 和max()值的方式的函数来获取以下值的第一个值和最后一个值。min()所以我的代码的这一部分完美地给出了最大值和最小值:
day_high = day_session['High'].rolling(window=1,freq='D').max()
day_low = day_session['Low'].rolling(window=1,freq='D').min()
Run Code Online (Sandbox Code Playgroud)
如何使用函数分别获取第一个和最后一个值?
day_open = day_session.Open.rolling(window=1,freq='D').?(“第一个”功能是什么?)
day_close = day_session.Last.rolling(window=1,freq='D').?(“最后一个”功能是什么?)
我已经尝试过了.first(),这给出了错误输出 'Rolling' object has no attribute 'first'和相同的.last()
这是我使用的数据的示例:
data['Last']
Out[96]:
Timestamp
2013-03-07 09:30:00 1440.00
2013-03-07 09:31:00 1439.75
2013-03-07 09:32:00 1440.50
2013-03-07 09:33:00 1441.00
2013-03-07 09:34:00 1441.50
2013-03-07 09:35:00 1441.75
2013-03-07 09:36:00 1440.75
2013-03-07 09:37:00 1440.50
2013-03-07 09:38:00 1440.75
2013-03-07 09:39:00 1440.00
Run Code Online (Sandbox Code Playgroud)
此代码用于滚动窗口,并且适用于上面的 max() Min() :
daystart = '9:30'
dayend = '16:14:59' …Run Code Online (Sandbox Code Playgroud) 问题:
我试图使用datetime.date对象列表过滤我的数据帧行.我明白了ValueError: Arrays were different lengths: 175033 vs 33
数据:
type(third_friday_lst)
list
type(third_friday_lst[0])
datetime.date
third_friday_lst
[datetime.date(2013, 1, 18),
datetime.date(2013, 2, 15),
datetime.date(2013, 3, 15),
datetime.date(2013, 4, 19),
datetime.date(2013, 5, 17),
datetime.date(2013, 6, 21),
datetime.date(2013, 7, 19),
datetime.date(2013, 8, 16),
datetime.date(2013, 9, 20),
datetime.date(2013, 10, 18),
datetime.date(2013, 11, 15)]
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
如果我使用以下代码,我得到所需的输出,但只有当我在列表中指定第一项时third_friday_lst[0]:
data[data['dt-date'] == third_friday_lst[0]]
Date Time Open High Low Last Volume dt-date
Timestamp
2013-01-18 08:00:00 2013/1/18 08:00:00 7875.5 7876.0 7867.5 7870.5 1059 2013-01-18
2013-01-18 08:05:00 2013/1/18 …Run Code Online (Sandbox Code Playgroud) 如何使用 Numpy/Pandas 创建 OHLC 数据框
.0075或.02范围可以指定为变量。希望看到随机价格大致在这些边界内波动。Close第一行的值位于(1.1904参见下面的示例)。np.random.seed),因此数据帧是可重现的。我正在尝试生成模拟外汇数据,以使用 Numpy/Pandas 为 pandas 问题创建可重现的示例。该问题涵盖了类似的数据要求,但使用开盘价、最高价、最低价、收盘价数据的外汇数据示例可能很有用,有助于避免将大量数据粘贴到问题中。
作为数据框外观的示例,我看到周五的欧元/美元汇率如下:
eur = {"open" : 1.19160,
"high" : 1.19371,
"low" : 1.18739,
"close" : 1.1904}
pd.DataFrame(eur,index=['19/3/2021'])
Run Code Online (Sandbox Code Playgroud)
这是一个基于前面提到的问题的假/模拟数据示例,它给出了我在如何使用np.random. 我添加了重新采样并转换为 OHLC,但不确定如何使用 Numpy 生成/控制数据。
periods = 250
eurusd = pd.DataFrame({
'ticker':np.repeat( ['eurusd'], periods ),
'date':np.tile( pd.date_range('1/1/2011', periods=periods, freq='H'), 1 ),
'price':(np.random.randn(periods).cumsum() + 10) })
eurusd.index = pd.to_datetime(eurusd.date)
eurusd.price.resample('D').ohlc()
Run Code Online (Sandbox Code Playgroud)
我已经更新了生成此数据的尝试(请参阅下面的“到目前为止我尝试过什么”),方法是从每小时数据重新采样为“每日”后生成 …
使用类似于此的函数:
def percentage(part, whole):
return 100 * float(part)/float(whole)
Run Code Online (Sandbox Code Playgroud)
我可以得到调用函数的百分比:
percentage(215,413)
Run Code Online (Sandbox Code Playgroud)
但是我如何使用 bool 系列并获得 True 和 False 的百分比?
s = pd.Series(np.random.randn(5) +5)
s > 5
0 True
1 False
2 False
3 True
4 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
所需的输出是系列中 True 值的百分比(上例中为 60%)。我需要map一个函数来获取输出吗?请告诉我执行此操作的最佳方法。谢谢
题:
True如果一天的第一次进入,我如何将熊猫数据帧中的填充布尔值转发到一天== True结束
请参阅以下示例和所需的输出。
数据:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'bool_col':[True,False,False,True,False,False,False,False,False],
'dates':pd.date_range('1/1/2011', periods=9, freq='8h')})
bool_col dates
0 True 2011-01-01 00:00:00
1 False 2011-01-01 08:00:00
2 False 2011-01-01 16:00:00
3 True 2011-01-02 00:00:00
4 False 2011-01-02 08:00:00
5 False 2011-01-02 16:00:00
6 False 2011-01-03 00:00:00
7 False 2011-01-03 08:00:00
8 False 2011-01-03 16:00:00
Run Code Online (Sandbox Code Playgroud)
期望输出:
bool_col dates
0 True 2011-01-01 00:00:00
1 True 2011-01-01 08:00:00
2 True 2011-01-01 16:00:00
3 True 2011-01-02 00:00:00 …Run Code Online (Sandbox Code Playgroud) 概述
我试图在财务数据上使用这个 Python 之字形烛台指标(利用高、低、收盘值),但下面的代码似乎有一个错误。
是否有另一个提供此功能的可用 Python 模块?
什么是锯齿形指标
每当价格反转的百分比大于预先选择的变量时,Zig Zag 指标就会在图表上绘制点。
我试过什么
在为烛台图表搜索 Python 之字形指标时,我能找到的唯一代码来自此拉取请求。
def peak_valley_pivots_candlestick(close, high, low, up_thresh, down_thresh):
"""
Finds the peaks and valleys of a series of HLC (open is not necessary).
TR: This is modified peak_valley_pivots function in order to find peaks and valleys for OHLC.
Parameters
----------
close : This is series with closes prices.
high : This is series with highs prices.
low : This is series with lows prices. …Run Code Online (Sandbox Code Playgroud) 如果我想从以下数据框中选择一个范围,我可以使用此命令:
bars_specified_days = bars['2016-05-27':'2016-06-03']
Run Code Online (Sandbox Code Playgroud)
如何从 2016-05-27:2016-06-03 范围中排除某一天 (2016-05-30)?
bars_specified_days.describe
<bound method NDFrame.describe of Timestamp
2016-06-03 09:31:07 1.0
2016-06-03 09:31:28 1.0
2016-06-03 09:31:30 40.0
2016-06-03 09:31:31 1.0
2016-06-03 09:31:54 2.0
2016-06-03 09:31:55 28.0
2016-06-03 09:32:12 86.0
2016-06-03 09:32:13 17.0
2016-06-03 09:32:17 51.0
2016-06-03 09:32:20 203.0
2016-06-03 09:32:24 30.0
2016-06-03 09:32:29 5.0
2016-06-03 09:32:30 1.0
2016-06-03 09:32:41 1.0
2016-06-03 09:32:49 1.0
2016-06-03 09:32:54 5.0
2016-06-03 09:33:03 10.0
2016-06-03 09:33:09 5.0
2016-06-03 09:33:10 5.0
2016-06-03 09:33:37 7.0
2016-06-03 09:33:42 1.0
2016-06-03 09:33:43 1.0 …Run Code Online (Sandbox Code Playgroud)