我正在做一个技术分析项目,我需要为买入/卖出信号的matplotlib
图表添加注释。当我从yfinance
模块获取数据时,我的DataFrame
中自动有一个DateTimeIndex
。
我的DataFrame
看起来像这样:
Date Close Upper SMA Lower Buy Sell
2020-05-21 231.389999 219.042175 207.178002 195.313829 NaN 231.389999
2020-05-22 234.910004 222.051354 209.420002 196.788650 NaN 234.910004
2020-05-26 232.199997 224.164115 211.655002 199.145889 NaN NaN
2020-05-27 229.139999 225.151643 213.966502 202.781360 NaN NaN
2020-05-28 225.460007 226.004370 215.530002 205.055633 NaN NaN
2020-05-29 225.089996 226.911921 216.549001 206.186082 NaN NaN
2020-06-01 231.910004 228.365279 218.031001 207.696723 NaN NaN
当Sell/Buy列中有一个notNaN
值时,我想得到它的Date
因此,如果售价是231.389999
,我想要的日期是2020-05-21
So far I have tried:
for i in range(0, len(df['Sell'])): if pd.notnull(df['Buy'][i]): date = df[df['Buy'] == i].index
But I get an empty list:
DatetimeIndex([], dtype='datetime64[ns]', name='Date', freq=None)
一旦我得到了Date
值,我就可以输入is作为x-axis
值,y-axis
值将是注释图表的notNaN
值
获得DateTimeIndex
的正确方法是什么
等同于您的代码:
您可以通过布尔掩蔽、
notna()
和按位或'|'
方法来实现这一点:或
您还可以通过布尔掩蔽、
notna()
和any()
方法来实现这一点:现在,如果您打印
result.index
,您将获得:现在如果您打印
result
,您将得到:现在如果你想把它形象化…那么你可以根据你的需要来形象化它
编码以获取索引:
输出:
代码 获得过滤df
输出
相关问题 更多 >
编程相关推荐