日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python股票分析系列_Python股票分析系列——基础股票数据操作(一).p3

發布時間:2024/1/18 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python股票分析系列_Python股票分析系列——基础股票数据操作(一).p3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該系列視頻已經搬運至bilibili:?點擊查看

歡迎來到Python for Finance教程系列的第3部分。在本教程中,我們將使用我們的股票數據進一步分解一些基本的數據操作和可視化。我們將要使用的開始代碼(在前面的教程中已經介紹過)是:

importdatetime as dtimportmatplotlib.pyplot as pltfrom matplotlib importstyleimportpandas as pdimportpandas_datareader.data as web

style.use('ggplot')

df= pd.read_csv('tsla.csv', parse_dates=True, index_col=0)

pandas模塊配備了一系列可以利用的內置功能,以及創建自定義pandas功能的方法。稍后我們將介紹一些自定義函數,但現在讓我們對這些數據執行一個非常常見的操作:移動平均線moving averages。

簡單移動平均線的想法是花時間窗口,并計算該窗口中的平均價格。然后我們把這個窗口轉過一段時間,然后再做一次。在我們的例子中,我們將執行100日均線(100ma)。因此,這將采用當前價格,并將過去99天的價格加起來除以100,然后確定當前的100日均線。然后我們移動窗戶超過1天,然后再做同樣的事情。在pandas中這樣做很簡單:

df['100ma'] = df['Adj Close'].rolling(window=100).mean()

做df ['100ma']允許我們重新定義包含現有列的內容(如果我們有一個名為“100ma”的),或者創建一個新列,這就是我們在這里所做的。我們說df ['100ma']列等同于應用滾動方法的df ['Adj Close']列,窗口為100,這個窗口將是一個平均值( )(平均)操作。

現在,我們可以這樣做:

print(df.head())

Date Open High Low Close Volume \

Date2010-06-29 2010-06-29 19.000000 25.00 17.540001 23.889999 18766300

2010-06-30 2010-06-30 25.790001 30.42 23.299999 23.830000 17187100

2010-07-01 2010-07-01 25.000000 25.92 20.270000 21.959999 8218800

2010-07-02 2010-07-02 23.000000 23.10 18.709999 19.200001 5139800

2010-07-06 2010-07-06 20.000000 20.00 15.830000 16.110001 6866900Adj Close 100ma

Date2010-06-29 23.889999NaN2010-06-30 23.830000NaN2010-07-01 21.959999NaN2010-07-02 19.200001NaN2010-07-06 16.110001 NaN

發生了什么? 在100ma列下,我們只看到NaN。 我們選擇了100個移動平均線,理論上需要100個之前的數據點進行計算,所以我們在前100行中不會有任何數據。 NaN的意思是“Not a Number”。 在Pandas,你可以決定做許多事情與缺失的數據,但現在,讓我們實際上只是改變最小周期參數:

df['100ma'] = df['Adj Close'].rolling(window=100,min_periods=0).mean()print(df.head())

Date Open High Low Close Volume \

Date2010-06-29 2010-06-29 19.000000 25.00 17.540001 23.889999 18766300

2010-06-30 2010-06-30 25.790001 30.42 23.299999 23.830000 17187100

2010-07-01 2010-07-01 25.000000 25.92 20.270000 21.959999 8218800

2010-07-02 2010-07-02 23.000000 23.10 18.709999 19.200001 5139800

2010-07-06 2010-07-06 20.000000 20.00 15.830000 16.110001 6866900Adj Close 100ma

Date2010-06-29 23.889999 23.889999

2010-06-30 23.830000 23.860000

2010-07-01 21.959999 23.226666

2010-07-02 19.200001 22.220000

2010-07-06 16.110001 20.998000

看吧,現在生效了,現在我們想看看它! 但是我們已經看到了簡單的圖表,稍微復雜一點的東西呢?

ax1 = plt.subplot2grid((6,1), (0,0), rowspan=5, colspan=1)

ax2= plt.subplot2grid((6,1), (5,0), rowspan=1, colspan=1,sharex=ax1)

基本上,我們說我們要創建兩個子圖,并且這兩個子圖都會像6x1網格一樣工作,我們有6行1列。 第一個子圖從該網格上的(0,0)開始,跨越5行,并跨越1列。 下一個軸也位于6x1網格上,但它始于(5,0),跨越1行和1列。 第二個軸也有sharex = ax1,這意味著ax2將始終將其x軸與ax1的x軸對齊,反之亦然。 現在我們只是制作我們的地塊:

ax1.plot(df.index, df['Adj Close'])

ax1.plot(df.index, df['100ma'])

ax2.bar(df.index, df['Volume'])

plt.show()

綜上,我們繪制了第一軸上的close和100ma,第二軸上的volume。 我們的結果:

完整的代碼到目前為止:

importdatetime as dtimportmatplotlib.pyplot as pltfrom matplotlib importstyleimportpandas as pdimportpandas_datareader.data as web

style.use('ggplot')

df= pd.read_csv('tsla.csv', parse_dates=True, index_col=0)

df['100ma'] = df['Adj Close'].rolling(window=100, min_periods=0).mean()print(df.head())

ax1= plt.subplot2grid((6,1), (0,0), rowspan=5, colspan=1)

ax2= plt.subplot2grid((6,1), (5,0), rowspan=1, colspan=1, sharex=ax1)

ax1.plot(df.index, df['Adj Close'])

ax1.plot(df.index, df['100ma'])

ax2.bar(df.index, df['Volume'])

plt.show()

在接下來的幾節教程中,我們將學習如何通過Pandas數據重采樣制作燭臺圖形,并學習更多關于使用Matplotlib的知識。

總結

以上是生活随笔為你收集整理的python股票分析系列_Python股票分析系列——基础股票数据操作(一).p3的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。