Pandas

基础处理

Pandas是什么?为什么用?

核心数据结构

DataFrame

Panel

Series

基本操作

运算

画图

文件的读取与存储

高级处理

4.1Pandas介绍

4.1.1 Pandas介绍 - 数据处理工具

panel + data + analysis

panel面板数据 - 计量经济学 三维数据

4.1.2 为什么使用Pandas

便捷的数据处理能力

读取文件方便

封装了Matplotlib、Numpy的画图和计算

4.1.3 DataFrame

结构:既有行索引,又有列索引的二维数组

属性:

shape

index

columns

values

T

方法:

head()

tail()

3 DataFrame索引的设置

1)修改行列索引值

2)重设索引

3)设置新索引

2 Panel

DataFrame的容器

3 Series

带索引的一维数组

属性

index

values

总结:

DataFrame是Series的容器

Panel是DataFrame的容器

4.2 基本数据操作

4.2.1 索引操作

1)直接索引

先列后行

2)按名字索引

loc

3)按数字索引

iloc

4)组合索引

数字、名字

4.2.3 排序

对内容排序

dataframe

series

对索引排序

dataframe

series

4.3 DataFrame运算

算术运算

逻辑运算

逻辑运算符

布尔索引

逻辑运算函数

query()

isin()

统计运算

min max mean median var std

np.argmax()

np.argmin()

自定义运算

apply(func, axis=0)True

func:自定义函数

4.4 Pandas画图

sr.plot()

4.5 文件读取与存储

4.5.1 CSV

pd.read_csv(path)

usecols=

names=

dataframe.to_csv(path)

columns=[]

index=False

header=False

4.5.2 HDF5、

hdf5 存储3维数据的文件

key1 dataframe1二维数据

key2 dataframe2二维数据

pd.read_hdf(path, key=)

df.to_hdf(path, key=)

4.5.3 JSON

pd.read_json(path)

orient="records"

lines=True

df.to_json(patn)

orient="records"

lines=True

案例1:pandas数据帧DataFrame

# 数据帧DataFrame

import numpy as np

import pandas as pd

# 创建一个符合正态分布的10个股票5天的涨跌幅数据

stock_change = np.random.normal(0, 1, (10, 5))

print(pd.DataFrame(stock_change))

# 添加行索引

stock = ["股票{}".format(i) for i in range(10)]

print(pd.DataFrame(stock_change, index=stock))

# 添加列索引

date = pd.date_range(start="20180101", periods=5, freq="B")

data = pd.DataFrame(stock_change, index=stock, columns=date)

print(data)

# DataFrame的属性

print(data.shape)

# 行列表

print(data.index)

# 列列表

print(data.columns)

# ndarray

print(data.values)

# 转置

print(data.T)

# 前三条

print(data.head(3))

# 后三条

print(data.tail(3))

# 修改行列索引值

stock_ = ["股票_{}".format(i) for i in range(10)]

data.index = stock_

print(data.index)

# 重设索引

print(data.reset_index(drop=False))

# 设置新索引

df = pd.DataFrame({'month': [1, 4, 7, 10],

'year': [2012, 2014, 2013, 2014],

'sale':[55, 40, 84, 31]})

# 以月份设置新的索引

print(df.set_index("month", drop=True))

# 设置多个索引,以年和月份

new_df = df.set_index(["year", "month"])

print(new_df)

print(new_df.index)

print(new_df.index.names)

print(new_df.index.levels)

案例2:基本数据操作

# 基本数据操作

import pandas as pd

data = [[23.53,25.88,24.16,23.53],[22.8,23.78,23.53,22.80],[22.88,23.37,22.82,22.71]]

df = pd.DataFrame(data,columns=['open','high','close','low'],index=['2019-08-21','2019-08-20','2019-08-19'])

# 先列后行

print(df['open']['2019-08-19'])

# 先行后列

print(df.loc['2019-08-19','open'])

print(df.iloc[1, 0])

# 获取行第1天到第2天,['open', 'close', 'high', 'low']这个四个指标的结果

print(df.ix[:2, ['open', 'close', 'high', 'low']])

# 赋值操作

df.open = 100

df.iloc[1, 0] = 222

print(df)

print(df.sort_values(by=["high", "low"], ascending=False))

print(df.sort_index())

sr = df['high']

print(sr.sort_values(ascending=False).head())

print(sr.sort_index())

print(df["open"].add(3))

print(df.sub(100))

print(df["close"].sub(df["open"]).head())

print(df[df["high"] > 24])

print(df.query("close > 24 & low > 15"))

# 统计运算

print(df.describe())

print(df.max(axis=0))

print(df.idxmax(axis=0))

df["close"].sort_index().cumsum().plot()

#自定义运算

print(df.apply(lambda x: x.max() - x.min()))

# 散点图

df.plot(x="low", y="high", kind="scatter")

案例3:数据文件读取

# 数据文件读取

# csv

import pandas as pd

pd.read_csv("./stock_day/stock_day.csv", usecols=["high", "low", "open", "close"]).head()

data = pd.read_csv("stock_day2.csv", names=["open", "high", "close", "low"])

# 保存'open'列的数据

data[:10].to_csv("test.csv", columns=["open"])

pd.read_csv("test.csv")

data[:10].to_csv("test.csv", columns=["open"], index=False, mode="a", header=False)

# hdf5

day_close = pd.read_hdf("./stock_data/day/day_close.h5")

day_close.to_hdf("test.h5", key="close")

print(pd.read_hdf("test.h5", key="close"))

day_open = pd.read_hdf("./stock_data/day/day_open.h5")

day_open.to_hdf("test.h5", key="open")

print(pd.read_hdf("test.h5", key="close").head())

# JSON

sa = pd.read_json("Sarcasm_Headlines_Dataset.json", orient="records", lines=True)

print(sa)

sa.to_json("test.json", orient="records", lines=True)

python学习与数据挖掘_Python学习之数据挖掘(三)相关推荐

  1. 流浪的python博客园_python学习心得第一章

    初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...

  2. python从入门到_Python学习路线从入门到上手,如何快速Python学习?

    因为清晰易读的风格,广泛的适用性,Python已经成为最受欢迎的编程语言之一.在TIOBE 排行榜中位居第四,是名副其实的人工智能第一语言. 风靡的另一个原因是,Python有非常多的第三方库.比如用 ...

  3. 自学python先准备什么_python学习步骤

    知乎链接:https://www.zhihu.com/question/53814059 这是我在你是如何自学 Python 的?问题下的回答,可以参考一下. 入门阶段 1. A Byte of Py ...

  4. python random模块导入_Python学习笔记(二十)—模块的导入

    一.模块介绍 Python 提供了强大的模块支持,主要体现在Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块.通过这些强大的模块可以极大地提 ...

  5. python奇数偶数机器语言_python 学习笔记之基础1

    一 python 语言介绍 1 pyhton 好处 高级语言 开发速度较快 方便使用 胶水语言 2 开发语言的分类 概念 字节码: 解释器解读出来的 可以认识的编码 机器码:二进制编码 也就是计算机 ...

  6. python学习与数据挖掘_python机器学习与数据挖掘

    爬虫 Python基础.数据分析扩展包Numpy.pandas.matplotlib,Python读取MySQL数据,Python爬虫及Scrapy框架,无监督机器学习算法聚类分析等,以及案例:互联网 ...

  7. python学习环境安装_python学习系列----环境的安装

    最近又想捣鼓下Python了,一来也是给自已找点事吧,毕竟做这行不进则退呀:我平时上班是做PHP的.所以其它时候还是想通过多学习提高下自已吧.好了,废话说完了,正题       其实以前也用过Pyth ...

  8. python教育数据挖掘_Python 数据分析 与 数据挖掘 (介绍篇)

    2019-03-15 20:14:57 楚格 介绍:Python 数据分析与挖掘,快速入门的Python and Packet 工具使用方法,其次是解决方案的应用案例,最后是数据分析与挖掘的思维价值. ...

  9. python进行大数据分析_Python进行大数据挖掘和分析

    大数据无处不在.在时下这个年代,不管你喜欢与否,在运营一个成功的商业的过程中都有可能会遇到它. 什么是大数据? 大数据就像它看起来那样--有大量的数据.单独而言,你能从单一的数据获取的洞见穷其有限.但 ...

最新文章

  1. javascript全栈开发实践-准备
  2. 硬盘运行时断电会导致硬盘怎样
  3. BZOJ2342[Shoi2011]双倍回文——回文自动机
  4. Spring MVC不要在@Service bean中保存状态
  5. php解析html数组,HTML中如何处理PHP传递的三维数组
  6. Android文本框输入汉字,android中EditText输入类型为何不能设置为中文
  7. linux基础-01-用户和目录、vim、归档和解压、系统启动流程、加密
  8. 类加载器以及双亲委派模型
  9. 登台区无效_使用事务数据复制来重放和测试登台服务器上的生产负载
  10. 开发工具-压力测试工具 ab
  11. linux下录制视频流,Ubuntu Linux 下的PSP视频输出以及录制
  12. 实习测试的一个月总结与心得
  13. 数据分析案例——航空公司客户价值分析
  14. 常见计算机病毒种类及特征介绍与分析
  15. 双活数据中心存储问题梳理
  16. Bmob关联Android,Android如何使用Bmob后端云实现失物招领功能
  17. 手把手系列之三十——手把手教你做番薯小煎饼
  18. 电影/电视剧/综艺/动漫/游戏 下载链接搜索引擎
  19. PPT如何锁定一些元素(使用母版的策略)
  20. 【整理】X86常用的汇编指令及寄存器

热门文章

  1. Spring @Transactional实际如何工作?
  2. Java 8 Lambda表达式的函数式编程– Monads
  3. 无需复杂插件即可从Eclipse启动和调试Tomcat
  4. 将Maven与Ivy集成
  5. 御用导航提示页面_UI网站导航设计知识与五个知识案例
  6. Linux 命令之 tar 命令-打包和备份的归档工具(附压缩/解压工具)
  7. hmi开发软件c语言,组态,HMI,软件,VC++,源代码
  8. python if语句能否判断中文_Python“if”语句被忽略
  9. mfc怎么获取进程的线程数_Python多线程获取小米应用商店App,看看我是怎么做到的
  10. 将py文件打包成exe可执行文件