读取一个真实的股票数据 

import pandas as pd
# 读取文件
data = pd.read_csv("./data/stock_day.csv")  # 删除一些列,让数据更简单些,再去做后面的操作
data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","v_ma20"], axis=1)   #删除,如果要对行“index” 需要指定(axis=1)data
  open high close low volume price_change p_change turnover
2018-02-27 23.53 25.88 24.16 23.53 95578.03 0.63 2.68 2.39
2018-02-26 22.80 23.78 23.53 22.80 60985.11 0.69 3.02 1.53
2018-02-23 22.88 23.37 22.82 22.71 52914.01 0.54 2.42 1.32
2018-02-22 22.25 22.76 22.28 22.02 36105.01 0.36 1.64 0.90
2018-02-14 21.49 21.99 21.92 21.48 23331.04 0.44 2.05 0.58
... ... ... ... ... ... ... ... ...
2015-03-06 13.17 14.48 14.28 13.13 179831.72 1.12 8.51 6.16
2015-03-05 12.88 13.45 13.16 12.87 93180.39 0.26 2.02 3.19
2015-03-04 12.80 12.92 12.90 12.61 67075.44 0.20 1.57 2.30
2015-03-03 12.52 13.06 12.70 12.52 139071.61 0.18 1.44 4.76
2015-03-02 12.25 12.67 12.52 12.20 96291.73 0.32 2.62 3.30

643 rows × 8 columns

 读取前五行

data.head()    #默认获取前五行
  open high close low volume price_change p_change turnover
2018-02-27 23.53 25.88 24.16 23.53 95578.03 0.63 2.68 2.39
2018-02-26 22.80 23.78 23.53 22.80 60985.11 0.69 3.02 1.53
2018-02-23 22.88 23.37 22.82 22.71 52914.01 0.54 2.42 1.32
2018-02-22 22.25 22.76 22.28 22.02 36105.01 0.36 1.64 0.90
2018-02-14 21.49 21.99 21.92 21.48 23331.04 0.44 2.05 0.58

1、索引操作

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

获取'2018-02-27'这天的'close'的结果

data['open']['2018-02-27']  #先列后行
#23.53# 不支持的操作
# 错误
data['2018-02-27']['open']
# 错误
data[:1, :2]

结合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
2018-02-22    22.25
Name: open, dtype: float64
'''
# 使用iloc可以通过索引的下标去获取
# 获取前3天数据,前5列的结果
data.iloc[:3, :5]
  open high close low volume
2018-02-27 23.53 25.88 24.16 23.53 95578.03
2018-02-26 22.80 23.78 23.53 22.80 60985.11
2018-02-23 22.88 23.37 22.82 22.71 52914.01

使用loc和iloc来获取的方式

# 推荐使用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 、排序 

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

DataFrame排序

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

    • 单个键或者多个键进行排序,
    • 参数:
      • by:指定排序参考的键
      • ascending:默认升序
        • ascending=False:降序
        • ascending=True:升序
# 按照开盘价大小进行排序 , 使用ascending指定按照大小排序
data.sort_values(by="open", ascending=True).head()
  open high close low volume price_change p_change turnover
2015-03-02 12.25 12.67 1 12.20 96291.73 0.32 2.62 3.30
2015-09-02 12.30 14.11 1 12.30 70201.74 -1.10 -8.17 2.40
2015-03-03 12.52 13.06 1 12.52 139071.61 0.18 1.44 4.76
2015-03-04 12.80 12.92 1 12.61 67075.44 0.20 1.57 2.30
2015-03-05 12.88 13.45 1 12.87 93180.39 0.26 2.02 3.19
# 按照多个键进行排序
data.sort_values(by=['open', 'high'])
  open high close low volume price_change p_change turnover
2015-03-02 12.25 12.67 1 12.20 96291.73 0.32 2.62 3.30
2015-09-02 12.30 14.11 1 12.30 70201.74 -1.10 -8.17 2.40
2015-03-03 12.52 13.06 1 12.52 139071.61 0.18 1.44 4.76
2015-03-04 12.80 12.92 1 12.61 67075.44 0.20 1.57 2.30
2015-03-05 12.88 13.45 1 12.87 93180.39 0.26 2.02 3.19
... ... ... ... ... ... ... ... ...
2015-06-11 33.17 34.98 1 32.51 173075.73 0.54 1.59 5.92
2017-11-01 33.85 34.34 1 33.10 232325.30 -0.61 -1.77 5.81
2015-06-10 34.10 36.35 1 32.23 269033.12 0.51 1.53 9.21
2015-06-12 34.69 35.98 1 34.01 159825.88 0.82 2.38 5.47
2015-06-15 34.99 34.99 1 31.69 199369.53 -3.52 -10.00 6.82

643 rows × 8 columns

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

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

# 对索引进行排序
data.sort_index()
open high close low volume price_change p_change turnover
2015-03-02 12.25 12.67 1 12.20 96291.73 0.32 2.62 3.30
2015-03-03 12.52 13.06 1 12.52 139071.61 0.18 1.44 4.76
2015-03-04 12.80 12.92 1 12.61 67075.44 0.20 1.57 2.30
2015-03-05 12.88 13.45 1 12.87 93180.39 0.26 2.02 3.19
2015-03-06 13.17 14.48 1 13.13 179831.72 1.12 8.51 6.16
... ... ... ... ... ... ... ... ...
2018-02-14 21.49 21.99 1 21.48 23331.04 0.44 2.05 0.58
2018-02-22 22.25 22.76 1 22.02 36105.01 0.36 1.64 0.90
2018-02-23 22.88 23.37 1 22.71 52914.01 0.54 2.42 1.32
2018-02-26 22.80 23.78 1 22.80 60985.11 0.69 3.02 1.53
2018-02-27 23.53 25.88 1 23.53 95578.03 0.63 2.68 2.39

643 rows × 8 columns

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
'''

总结

  • 1.索引

    • 直接索引 -- 先列后行,是需要通过索引的字符串进行获取
    • loc -- 先行后列,是需要通过索引的字符串进行获取
    • iloc -- 先行后列,是通过下标进行索引
    • ix -- 先行后列, 可以用上面两种方法混合进行索引
  • 2.赋值
    • data[""] = **
    • data. =
  • 3.排序
    • dataframe

      • 对象.sort_values()
      • 对象.sort_index()
    • series
      • 对象.sort_values()
      • 对象.sort_index()

Pandas的基本数据操作相关推荐

  1. 机器学习之Pandas:Pandas介绍、基本数据操作、DataFrame运算、Pandas画图、文件读取与处、缺失值处理、数据离散化、合并、交叉表和透视表、分组与聚合、案例(超长篇,建议收藏慢慢看)

    文章目录 Pandas 学习目标 1Pandas介绍 学习目标 1 Pandas介绍 2 为什么使用Pandas 3 案例: 问题:如何让数据更有意义的显示?处理刚才的股票数据 给股票涨跌幅数据增加行 ...

  2. pandas基本数据操作

    pandas基本数据操作 为了更好的理解这些基本操作,我们将读取一个真实的股票数据.关于文件操作,后面在介绍,这里只先用一下API # 读取文件 data = pd.read_csv("./ ...

  3. python使用pandas模块介绍以及使用,dataframe结构,Series结构,基本数据操作,DataFrame运算,pandas画图,存储,缺失值处理,离散化,合并

    目录 1 pandas介绍 1.1 Pandas介绍 1.2 为什么使用Pandas 1.3 案例:在numpy当中创建的股票涨跌幅数据形式 1.4 DataFrame 1.4.1 DataFrame ...

  4. 机器学习1:——Pandas——1:基本数据操作

    一.基本数据操作 学习目标 目标 记忆DataFrame的形状.行列索引名称获取等基本属性 应用Series和DataFrame的索引进行切片获取 应用sort_index和sort_values实现 ...

  5. 数据分析工具Pandas(2):Pandas的索引操作

    数据分析工具Pandas(1):Pandas的数据结构 数据分析工具Pandas(2):Pandas的索引操作 Pandas的索引操作 索引对象Index 1. Series和DataFrame中的索 ...

  6. Pandas简明教程:五、Pandas简单统计操作及通用方式

    文章目录 1.DataFrame的方法使用举例 2.DataFrame的方法调用通用方式 3.DataFrame直接调用其它方法 本系列教程教程完整目录: 前面已经提到,Pandas的DataFram ...

  7. 【Python基础】Pandas向量化字符串操作

    一.向量化操作概述 Python内置一系列强大的字符串处理方法,但这些方法只能处理单个字符串,处理一个序列的字符串时,需要用到循环. 那么,有没有办法,不用循环就能同时处理多个字符串呢,pandas的 ...

  8. 玩转 Pandas 的 Groupby 操作

    作者:Lemon 来源:Python数据之道 玩转 Pandas 的 Groupby 操作 大家好,我是 Lemon,今天来跟大家分享下 pandas 中 groupby 的用法. Pandas 的 ...

  9. Pandas数据类型及操作

    Pandas数据类型及操作,pandas 提供了一组标准的时间序列处理工具和数据算法 数据类型及操作 Python 标准库的 datetime datetime 模块中的 datetime. time ...

最新文章

  1. Flutter从0基础到App上线
  2. R语言笔记3:提取R对象的子集
  3. Objective-C中的@property使用[五]
  4. error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug...
  5. 使用response的outputstream
  6. 源码安装NASM,无root权限
  7. day21 pickle json shelve configpaser 模块
  8. Kaggle新赛:木薯叶疾病分类
  9. IOS-简单WebView的使用
  10. 阿里巴巴YunOS加入物联网标准组织ZigBee联盟
  11. 【模拟】蓝桥20:蛇形填数
  12. C# 调用控制台应用程序及传参
  13. 君正T31硬件设计手册
  14. 深度学习:摩尔纹识别(翻拍检测)
  15. 计算机键盘复制键是哪个,键盘按什么键复制粘贴_键盘上复制粘贴快捷键是哪个键-win7之家...
  16. 对多媒体框架的几点看法
  17. 计算机网络英语形容词,英语常用形容词有哪些
  18. 去除ueditor自动默认添加p标签
  19. 分布表示(distributional representation)与分布式表示(distributed representation)
  20. thinkpad T450 重新安装系统 win 10

热门文章

  1. Vue父组件传给子组件数据,子组件得不到数据解决方法
  2. 汇编语言--SS 和 SP
  3. 油烟净化器和抽油烟机的区别在哪里?开餐馆应该安装哪个
  4. cocos2d-x 游戏 之 Tiled Map Editor(地图编辑)
  5. const指针 与指向const的指针的区别
  6. 为什么荒野行动pc版获取服务器信息,荒野行动获取服务器信息一直不动 服务器信息0解决方法...
  7. Win 11解除文件被安全扫描的问题
  8. 【STM32】XPT2046四导线触摸屏控制器 SPI驱动
  9. XPT2046 5寸HDMI显示屏触摸参数 (通过旋转屏幕达到仿制waveshare屏幕完美使用)
  10. 关于期初采购业务(仓库已经入库,未开采购发票的情况)