欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

Python Pandas学习之基本数据操作详解

时间:2022-07-25 10:52:41|栏目:Python代码|点击:

为了更好的理解这些基本操作,下面会通过读取一个股票数据,来进行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 中由 yield 实现异步操作

栏    目:Python代码

下一篇:Python中字典的缓存池

本文标题:Python Pandas学习之基本数据操作详解

本文地址:http://www.codeinn.net/misctech/208820.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有