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

歡迎訪問 生活随笔!

生活随笔

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

python

dateframe取某列数据_Python获取时序数据并进行可视化分析

發布時間:2025/3/12 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dateframe取某列数据_Python获取时序数据并进行可视化分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
更多精彩,請點擊上方藍字關注我們!

1. 準備工作

tushare是一個第三方財經數據接口包,需要安裝包并完成注冊。

  • 安裝tushare包

pip?install?tushare?
  • 為防惡意調用接口數據,官方()需要新用戶完成注冊、提高積分(例如達到200)、取得訪問權限token ID

2. 加載數據

首先需要導入包已安裝的tushare包。然后通過tokenID獲取一個有訪問權限的API接口,最終通過官方文檔說明,使用index_daily()?來獲取樣例數據。這里取399401.SZ的交易日期和收盤價。

import?tushare?as?ts?

ts.set_token("1797f6915fbc1e612c33c6ed4cf85a2b7b349d85db80bf0860337fff")
pro=ts.pro_api()
df1=pro.index_daily(ts_code="399401.SZ")[['trade_date',?'close']]

3. 數據處理-轉化與合并

  • 數據類型轉化為datetime

導入數據后,先觀察源數據的字段類型是否符合預期。通過執行如下腳本,得到當前數據集中,trade_date為object 并非日期類型

#?查看數據類型
print(df1.dtypes)
#?查看樣例數據
print(df1.head())

pandas中改變某列的數據類型為日期時,可用pd.to_datetime。修改完成后,將數據集中的日期字段重新設為索引。注意不要漏掉inplace=True。

df1.sort_values('trade_date',?inplace=True)
#?轉換列數據類型為日期
df1['trade_date']=pd.to_datetime(df1['trade_date'])
#?將指定的日期類型?列設為索引,并替代。
df1.set_index('trade_date',?inplace=True)
  • 數據合并concat

上面的df1對象中只包含一支股票的信息,當在matplotlib中展現時,僅可以觀察趨勢。如果需要與其它股票作對比分析,則需要合并另外的數據。

#?獲取多支交易數據數據,作對比分析?
list1?=?['000002.SZ',?'000012.SZ',?'600010.SH']

for?i,?ts_code?in?enumerate(list1):
????#?取指定日期的數據?
????df_tmp?=?pro.daily(ts_code=ts_code,?start_date='20170101',?end_date='20180101')[['trade_date',?'close']]
????df_tmp.sort_values('trade_date',?inplace=True)
????df_tmp['trade_date']=pd.to_datetime(df_tmp['trade_date'])
????df_tmp.rename(columns={'close':?ts_code},?inplace=True)
????df_tmp.set_index('trade_date',?inplace=True)
????if?i==0?:
????????df?=?df_tmp
????else:
????# axis=1,沿第2條軸即X軸。列增加
????????df?=?pd.concat([df,?df_tmp],?axis=1)
????print(ts_code)
#?查看數據?
df.head()

4. 可視化展現

  • 查看單一股票的年度趨勢圖,并添加參考線

import?matplotlib.pyplot?as?plt?
ax?=?df1.plot(color="blue",?figsize=(12,?4),?linewidth=2,?fontsize=6)
ax.set_xlabel("trade?date")
ax.set_ylabel("399401.SZ?close")
ax.set_title("Trend?analysis?of?recent?years?2013-2019?",?fontsize=8)

#?添加水平線
ax.axvline("2018-08-15",?color="red",?linestyle="--",?linewidth=2)
ax.axhline(6000,?color="green",?linestyle="--",linewidth=2?)

plt.show()

如下示圖:

  • 參數設置。

主題切換

可先調用語句`plt.style.available`,查看當前可用的主題名稱,再選擇即可。

設置X軸日期格式

matploblib中也提供了的dates對象,對X軸的顯示日期格式與頻度進行設置。如下腳本,將設置日期區間為'2013-01-01'?至?'2019-12-01',顯示'年-月',頻度為10個月。
#?查看可用樣式
import?matplotlib.dates?as?mdate?

print(plt.style.available)
plt.style.use("seaborn-talk")
ax1=df1.plot(figsize=(12,?4))
ax1.set_title("my?mew?style?-?seaborn-talk")
ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m'))
plt.xticks(pd.date_range("2013-01-01",?"2019-12-01",?freq="10m"))
plt.show()

示例圖如下:

  • 對比分析

先預覽已完成合并的數據。dataFrame對象df中trade_date仍為索引,但是新增了其它列。

ax3?=?df.plot(linewidth=3?,?fontsize=16,?figsize=(12,?4?))
ax3.set_xlabel('trade_date')
ax3.set_ylabel("unit?price")
#?指定X軸顯示刻度?,取代默認設置
ax3.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m'))
plt.xticks(pd.date_range("2017-01-01",?"2018-01-01",?freq="3m"))

ax3.legend(fontsize=12)
ax3.set_title("Comparison?of?analysis")
plt.show()

展現結果為:

5. 小結

  • 介紹了獲取第三方平臺的接口數據的方法

  • 數據清洗與合并,主要有數據類型轉換、重新排序、索引重置、數據合并

  • 時序數據的可視化對比分析與基本展現設置

圖文 / 來源網絡

版權歸原作者所有,侵聯刪

END

碧茂課堂精彩課程推薦:

1.Cloudera數據分析課;

2.Spark和Hadoop開發員培訓;

3.大數據機器學習之推薦系統;

4.Python數據分析與機器學習實戰;

詳情請關注我們公眾號:碧茂大數據-課程產品-碧茂課堂

現在注冊互動得海量學幣,大量精品課程免費送!

關注最新行業動態,

加群進行技術交流!

總結

以上是生活随笔為你收集整理的dateframe取某列数据_Python获取时序数据并进行可视化分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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