python学习与数据挖掘_Python学习之数据挖掘(三)

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】电大中专学前儿童科学教育 (14)作业 题库

1学前儿童科学教育的学习重点是() A学前儿童科学教育的内涵 B学前儿童科学教育的概念 C科学的概念 D技术的概念 错误 正确答案:左边查询 学生答案:A 2学前儿童科学教育的学习难点是() A学前儿童科学教育的内涵 B学前儿童科学教育在儿童发展中的意义 C学前…

生成器作为(快速失败)状态机

这个想法是几周前在设计“ Generator”类时想到的,该类必须将输入发送给封装的Writer 。 实际上,它是Builder模式。 但是,规则有些复杂,用户必须以某种方式调用add...()方法,才能正确生成输出。 不用说,我…

【渝粤教育】电大中专市场营销管理20作业 题库

1.市场营销没有宏观市场营销和微观市场营销之分。该说法:( ) A.错误 B.正确 错误 正确答案:左边查询 学生答案:B 2.战略选择的陷阱有:盲目跟随、墨守成规、军备竞赛、多方出击、孤注一掷、本末倒置。该说法…

源码包编译安装python_Python3.7源码包编译安装-Go语言中文社区

环境:[rootlocalhost python3]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)[rootlocalhost python3]#1、下载Python方式一:方式二:进入https://www.python.org/ftp/python/ 这里存放着所有版本的Python源码。往下拉看到最…

【渝粤教育】电大中专建筑力学 (4)作业 题库

1.下列说法不正确的是()。 A.力偶在任何坐标轴上的投形恒为零 B.力可以平移到刚体内的任意一点 C.力系的合力在某一轴上的投形等于各分力在同一轴上投形的代数和 D.力使物体绕某一点转动的效应取决于力的大小和力作用线到该点的垂直距离 正确 正确答案&a…

java criteria and_criteria用法

Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如:Java代码Criteria criteria session.createCriteria(User.class);criteria.add(Expression.eq(&q…

【渝粤教育】电大中专新媒体营销实务 (4)作业 题库

1.( )对新媒体的定义为:“以数字信息技术为基础,以互动传播为特点,具有创新形态的媒体。” A.新传媒产业联盟秘书长王斌 B.联合国教科文组织 C.华纳兄弟总裁施瓦茨威格 正确 正确答案:左边查询 学生答案&am…

服务网格:Istio和AWS App Mesh

本周在AWS re:Invent上的重大公告之一是AWS App Mesh 。 在谈论它之前,让我们先看一下网格到底是什么…… 什么是服务网格? 服务网格是微服务体系结构的基础结构层。 它处理服务之间的通信问题,使该通信更加可见(或“…

【渝粤教育】电大中专消费者心理学_1作业 题库

1.在西方,早期思想家也有论及消费时令和消费季节的朴素思想。该说法() A.错误 B.正确 正确 正确答案:左边查询 学生答案:A 2.体系凝构阶段大致自20世纪70年代延至20世纪末或21世纪初。该说法() …

java按键发出声音代码_怎么在java中给按钮添加声音?

可以加入GTM时间,代码如下:public class ShowCurrentTime {public static void main(String args[]){//Obtain the total milliseconds since midnight,Jan 1,1970long totalMillisecondsSystem.currentTimeMillis();//Obtain the total seconds since i…

Spring字段依赖注入示例

学习如何编写Spring Field Injection示例 。 字段注入是Spring框架 依赖注入的一种 。 在本教程中,我们将编写几个类,并看一看现场注入工程。 有关Spring依赖注入的更多信息: Spring Setter依赖注入示例 Spring构造函数依赖注入示例 Spri…

java8 新特性之流式数据处理_Java8新特性 - 集合流式编程 - 最终操作

2、数据源的获取2.1、数据源的简介数据源,顾名思义,既是流中的数据的来源。是集合的流式编程的第一步,将数据源中的数据读取到流中,进行处理。注意:将数据读取到流中进行处理的时候,与数据源中的数据没有关…

【渝粤教育】电大中专电大中专职业健康与安全考试考核试题作业 题库

试卷答案 1根据系统安全工程的观点,危险是指系统中存在导致发生不期望后果的可能性超过了( ) A极限 B人们的承受程度 C危险度 D安全系数 错误 正确答案:左边查询 学生答案:A 2对职工来说,安全是&#xff0…

java jdt_在JDT中使用Java 8 Lambda

java jdt旧 Curmudgeon 认识Smalltalk的Dude 在修改Eclipse Java开发工具 (JDT)项目正在开发的Java 8支持时,我一直在使用这种语言。 我承认我对Java 8中的lambda有点不满意。 当然,这来自于知道Smalltalk (和LISP…

java 1.8签名apk_给Android的APK程序签名和重新签名的方法

签名工具的使用Android源码编译出来的signapk.jar既可给apk签名,也可给rom签名的。使用格式:java –jar signapk.jar [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar-w 是指对ROM签名时需使用的参数publickey.x509[.pem] 是公钥文件pri…

【渝粤教育】电大中专职业生涯规划 (3)作业 题库

1职业价值观具有明确的目的性、( )和坚定性的职业选择的态度和行为。 A自由性 B动机性 C自觉性 D制约性 错误 正确答案:左边查询 学生答案:A 2不属于探索价值观方法的是( )。 A澄清反应法 B意见表决法 C间接…

使用Oracle验证外部数据

我经常在Corda Slack频道中闲逛,并尽可能回答问题。 我尝试回答的合理数量的问题与Oracle有关。 更具体地说,何时使用一个。 我觉得我可以回答,“当您需要验证可能经常更改的外部数据时使用Oracle”。 我可能在某个时候写了一个类似的答案。 …

【渝粤教育】电大中专药理学基础 (2)_1作业 题库

1.关于苯二氮卓类镇静催眠药的叙述,不正确的是()。 A.长期应用不会产生依赖性和成瘾性 B.是目前最常用的镇静催眠药 C.可用于治疗小儿高热惊厥 D.临床上用于治疗焦虑症 E.可用于心脏电复律前给药 错误 正确答案:左边查询 学生答案…

【渝粤教育】电大中专计算机职业素养 (11)作业 题库

1.用冰山模型说明职业素养构成时,我们把浮在水面上面的知识、技能等部分称为( )的职业素养。 A.获得 B.显性 C.专业 D.隐性 错误 正确答案:左边查询 学生答案:A 2.职业素养的基本内容包括:职业道德、职业意…

java 2d 教程_Java 2D开发技巧之“灯光与阴影”

Java 2D开发技巧之“灯光与阴影”(2016-12-14 02:12:25)标签:杂谈一、 引言在本文中,我们将向你展示如何为扁平形状添加一种灯光效果以实现一种类3D外观。也许你比较满意于自己的文字表达能力,但一幅图片往往能够产生更好的效果。对于图形处理…