Python 利用熊猫和股票价格确定趋势

Python 利用熊猫和股票价格确定趋势,python,pandas,Python,Pandas,下面是我的df的.head(8)。它显示日期、名称、macd、macd_信号和macd_历史 Date Name macd macd_signal macd_hist 364 2021-05-03 ACCD 0.889189 0.643972 0.245218 364 2021-05-04 ACCD 0.660302 0.647238 0.013064 364 2021-05-05 ACCD 0.455899

下面是我的df的.head(8)。它显示日期、名称、macd、macd_信号和macd_历史

        Date    Name    macd    macd_signal macd_hist
364 2021-05-03  ACCD    0.889189    0.643972    0.245218
364 2021-05-04  ACCD    0.660302    0.647238    0.013064
364 2021-05-05  ACCD    0.455899    0.608970    -0.153071
267 2021-05-03  ACN     5.011330    5.581300    -0.569971
267 2021-05-04  ACN     4.809930    5.427030    -0.617098
267 2021-05-05  ACN     4.558230    5.253270    -0.695034
268 2021-05-03  ADBE    9.011790    11.57670    -2.56486
268 2021-05-04  ADBE    6.779280    10.61720    -3.83789
268 2021-05-05  ADBE    4.944930    9.482730    -4.5378
我感兴趣的是返回每个不同名称的最后一行,其中macd_hist连续三天减少

这意味着2021-05-05的所有不同名称都应返回,因为它们的macd_历史值都在逐日递减

输出:

        Date    Name  macd      macd_signal macd_hist
268 2021-05-05  ADBE  4.944930  9.482730    -4.5378
267 2021-05-05  ACN   4.558230  5.253270    -0.695034
364 2021-05-05  ACCD  0.455899  0.608970    -0.153071
Date Name macd macd_signal macd_hist 364 2021-05-05 ACCD 0.455899 0.60897 -0.153071 267 2021-05-05 ACN 4.558230 5.25327 -0.695034 268 2021-05-05 ADBE 4.944930 9.48273 -4.537800
让我们试试这样的方法:

def get_last_of_3(g):
#看一行减少了多少
c=g.macd_hist.diff().fillna(-1).lt(0).sum()
如果c!=三:
#如果不是3,则不返回任何内容
一无所获
#如果有3行,返回最后一行
返回g.tail(1)
df=df.groupby('Name',as_index=False)\
.应用(获取第三个中的最后一个)\
.液滴液位(0,0)
打印(df)
输出:

        Date    Name  macd      macd_signal macd_hist
268 2021-05-05  ADBE  4.944930  9.482730    -4.5378
267 2021-05-05  ACN   4.558230  5.253270    -0.695034
364 2021-05-05  ACCD  0.455899  0.608970    -0.153071
Date Name macd macd_signal macd_hist 364 2021-05-05 ACCD 0.455899 0.60897 -0.153071 267 2021-05-05 ACN 4.558230 5.25327 -0.695034 268 2021-05-05 ADBE 4.944930 9.48273 -4.537800 日期名称macd macd\ U信号macd\ U历史 364 2021-05-05账户0.455899 0.60897-0.153071 267 2021-05-05 ACN 4.558230 5.25327-0.695034 268 2021-05-05 ADBE 4.944930 9.48273-4.537800
很好用!如果我想让它反过来,寻找上升趋势,我该如何修改它呢?
.fillna(1).gt(0)
很有魅力,谢谢!