Python数据分析——Pandas(2)

学习目标

  • 目标
    • 记忆DataFrame的形状、行列索引名称获取等基本属性
    • 应用Series和DataFrame的索引进行切片获取
    • 应用sort_index和sort_values实现索引和值的排序
  • 应用
    • 股票每日数据的操作

为了更好的理解这些基本操作,我们将读取一个真实的股票数据。有需要的话数据可以从这里下载:股票数据下载

#读取数据
data = pd.read_csv("./600690.csv")


# 删除一些列,让数据更简单些,并把日期作为行索引,再去做后面的操作
data = data.drop(["股票代码", "名称"],axis=1)

data = data.set_index("日期")

 

1 索引操作

Numpy当中我们已经讲过使用索引选取序列和切片选择,pandas也支持类似的操作,也可以直接使用列名、行名

称,甚至组合使用。

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

获取'2018-07-04'这天的'收盘价'的结果

# 直接使用行列索引名字的方式(先列后行)
data['收盘价']['2018-07-04']

# 不支持的操作
# 错误
data['2018-02-27']['收盘价']
# 错误
data[:1, :2]

1.2 结合loc或者iloc使用索引

获取从'2018-02-27':'2018-02-22','收盘价'的结果

# 使用loc:只能指定行列索引的名字
data.loc['2018-02-27':'2018-02-22', '收盘价']

# 使用iloc可以通过索引的下标去获取
# 获取前100天数据的'open'列的结果
data.iloc[0:100, 0:2].head()

1.3 使用ix组合索引

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

获取行第1天到第4天, ['收盘价', '最高价', '最低价', '开盘价'] 这个四个指标的结果

# 使用ix进行下表和名称组合做引
data.ix[0:4, ['收盘价', '最高价', '最低价', '开盘价']]

# 推荐使用loc和iloc来获取的方式
data.loc[data.index[0:4], ['收盘价', '最高价', '最低价', '开盘价']]
data.iloc[0:4, data.columns.get_indexer(['收盘价', '最高价', '最低价', '开盘价'])]

2 赋值操作

对DataFrame当中的'收盘价'列进行重新赋值为1

# 直接修改原来的值
data['收盘价'] = 1
# 或者
data.收盘价 = 1

3 排序

排序有两种形式,一种对于索引进行排序,一种对于内容进行排序

  • 使用df.sort_values(by=, ascending=)
    • 单个键或者多个键进行排序,默认升序
    • ascending=False:降序
    • ascending=True:升序
# 按照开盘价大小进行排序 , 使用ascending指定按照大小排序
data = data.sort_values(by='开盘价', ascending=False).head()

# 按照多个键共同进行排序
data = data.sort_values(by=['收盘价', '最高价'], ascending=False)

  • 使用df.sort_index给索引进行排序

这个股票的日期索引原来是从大到小,现在重新排序,从小到大

# 对索引进行排序
data.sort_index()

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

series排序时,只有一列,不需要参数

data['最高价'].sort_values(ascending=True).head()

  • 使用series.sort_index()进行排序

与df一致

# 对索引进行排序
data['最高价'].sort_index().head()

4 总结

  • 1.索引【掌握】
    • 直接索引 -- 先列后行,是需要通过索引的字符串进行获取
    • loc -- 先行后列,是需要通过索引的字符串进行获取
    • iloc -- 先行后列,是通过下标进行索引
    • ix -- 先行后列, 可以用上面两种方法混合进行索引
  • 2.赋值【知道】
    • data[""] = **
    • data. =
  • 3.排序【知道】
    • dataframe
      • 对象.sort_values()
      • 对象.sort_index()
    • series
      • 对象.sort_values()
      • 对象.sort_index()
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值