Python Pandas学习之基本数据操作详解
目录
- 1索引操作
- 1.1直接使用行列索引(先列后行)
- 1.2结合loc或者iloc使用索引
- 1.3使用ix组合索引
- 2赋值操作
- 3排序
- 3.1DataFrame排序
- 3.2Series排序
为了更好的理解这些基本操作,下面会通过读取一个股票数据,来进行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
到此这篇关于Python Pandas学习之基本数据操作详解的文章就介绍到这了,更多相关Python Pandas数据操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)