小编ade*_*e1e的帖子

如何使用函数从数据框列中获取第一个和最后一个值

我需要使用类似于从 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)

python pandas

3
推荐指数
1
解决办法
8247
查看次数

使用datetime.date对象列表过滤数据帧行

问题:

我试图使用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)

python pandas

3
推荐指数
1
解决办法
782
查看次数

生成模拟外汇或股票 OHLC 数据,用于 pandas 问题的可重现示例

概括

如何使用 Numpy/Pandas 创建 OHLC 数据框

  • ATR或交易范围约为.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)

在此输入图像描述

编辑

我已经更新了生成此数据的尝试(请参阅下面的“到目前为止我尝试过什么”),方法是从每小时数据重新采样为“每日”后生成 …

python numpy pandas

3
推荐指数
1
解决办法
1382
查看次数

Pandas 中 bool 系列的百分比函数

使用类似于此的函数:

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一个函数来获取输出吗?请告诉我执行此操作的最佳方法。谢谢

python pandas

2
推荐指数
1
解决办法
2199
查看次数

Pandas Dataframe 中布尔值的条件前向填充

题:

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 pandas

2
推荐指数
1
解决办法
919
查看次数

Python Zig Zag 算法函数未返回预期结果

概述

我试图在财务数据上使用这个 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)

python algorithm numpy pandas

1
推荐指数
1
解决办法
567
查看次数

从 Pandas Dataframe 日期范围中排除日期

如果我想从以下数据框中选择一个范围,我可以使用此命令:

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)

python pandas

0
推荐指数
1
解决办法
1637
查看次数

标签 统计

pandas ×7

python ×7

numpy ×2

algorithm ×1