日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?Pandas學習之基本數據操作詳解_python

作者:Dragon少年 ? 更新時間: 2022-04-27 編程語言

為了更好的理解這些基本操作,下面會通過讀取一個股票數據,來進行Pandas基本數據操作的語法介紹。

# 讀取文件(讀取保存文件后面會專門進行講解,這里先直接調用下api)
data = pd.read_csv("./data/stock_day.csv") ?# 讀取當前目錄下一個csv文件

# 刪除一些列,讓數據更簡單些,再去做后面的操作
data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","v_ma20"], axis=1)

1 索引操作

Numpy當中我們已經講過使用索引選取序列和切片選擇,pandas也支持類似的操作,也可以直接使用列名、行名稱,甚至組合使用。

1.1 直接使用行列索引(先列后行)

舉例:獲取2018-02-27 這天閉盤價,即獲取’2018-02-27’這天的’close’的結果。

# 直接使用行列索引名字的方式(先列后行)
data['close']['2018-02-27']
24.16

# 不支持的操作
# 錯誤
data['2018-02-27']['close']
# 錯誤
data[:1, :2]

1.2 結合loc或者iloc使用索引

獲取從’2018-02-27’:‘2018-02-22’,'close’的結果

# 使用loc:只能指定行列索引的名字
data.loc["2018-02-25":"2018-02-14", "open":"low"]

# 使用iloc可以通過索引的下標去獲取
# 獲取前3天數據,前5列的結果
data.iloc[:3, :5]

            open    high    close    low
2018-02-27    23.53    25.88    24.16    23.53
2018-02-26    22.80    23.78    23.53    22.80
2018-02-23    22.88    23.37    22.82    22.71

1.3 使用ix組合索引

獲取行第1天到第4天,[‘open’, ‘close’, ‘high’, ‘low’]這個四個指標的結果

# 使用ix進行下表和名稱組合做引
data.ix[0:4, ['open', 'close', 'high', 'low']]

# 推薦使用loc和iloc來獲取的方式
data.loc[data.index[0:4], ['open', 'close', 'high', 'low']]
data.iloc[0:4, data.columns.get_indexer(['open', 'close', 'high', 'low'])]

            open    close    high    low
2018-02-27    23.53    24.16    25.88    23.53
2018-02-26    22.80    23.53    23.78    22.80
2018-02-23    22.88    22.82    23.37    22.71
2018-02-22    22.25    22.28    22.76    22.02

2 賦值操作

對DataFrame當中的close列進行重新賦值為1

# 直接修改原來的值
data['close'] = 1
# 或者
data.close = 1

3 排序

排序有兩種形式,一種對于索引進行排序,一種對于內容進行排序

3.1 DataFrame排序

使用df.sort_values(by=, ascending=)

單個鍵或者多個鍵進行排序,

參數:

1.by:指定排序參考的鍵

2.ascending:默認升序

  • ascending=False:降序
  • ascending=True:升序
# 按照開盤價大小進行排序 , 使用ascending指定按照大小排序,取前5行數據
data.sort_values(by="open", ascending=True).head()

# 按照多個鍵進行排序
data.sort_values(by=['open', 'high'])

使用df.sort_index給索引進行排序

股票的日期索引原來是從大到小,現在重新排序,從小到大。

# 對索引進行排序
data.sort_index()

3.2 Series排序

使用series.sort_values(ascending=True)進行排序

series排序時,只有一列,不需要參數。

data['p_change'].sort_values(ascending=True).head()

2015-09-01 ? -10.03
2015-09-14 ? -10.02
2016-01-11 ? -10.02
2015-07-15 ? -10.02
2015-08-26 ? -10.01
Name: p_change, dtype: float64

使用series.sort_index()進行排序,和Dataframe方法一致

# 對索引進行排序
data['p_change'].sort_index().head()

2015-03-02    2.62
2015-03-03    1.44
2015-03-04    1.57
2015-03-05    2.02
2015-03-06    8.51
Name: p_change, dtype: float64

原文鏈接:https://blog.csdn.net/hhladminhhl/article/details/109180108

欄目分類
最近更新