天天看點

Pandas基本資料操作

索引操作

直接使用行列索引(先列後行)

擷取'2018-02-27'這天的'close'的結果

直接使用行列索引名字的方式(先列後行)

data['open']['2018-02-27']

23.53

結合loc或者iloc使用索引

擷取從'2018-02-27':'2018-02-22','open'的結果

使用loc:隻能指定行列索引的名字

data.loc['2018-02-27':'2018-02-22', 'open']

2018-02-27 23.53

2018-02-26 22.80

2018-02-23 22.88

Name: open, dtype: float64

使用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

使用ix組合索引

Warning:Starting in 0.20.0, the .ix indexer is deprecated, in favor of the more strict .iloc and .loc indexers.
           

擷取行第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

指派操作

對DataFrame當中的close列進行重新指派為1

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

排序

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

  • DataFrame排序

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

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

    參數:

    by:指定排序參考的鍵

    ascending:預設升序

    ascending=False:降序

    ascending=True:升序

# 按照開盤價大小進行排序 , 使用ascending指定按照大小排序
data.sort_values(by="open", ascending=True).head()


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

image-20190624114352409

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

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

# 對索引進行排序
data.sort_index()
           
  • 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()進行排序

與df一緻

# 對索引進行排序
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