数据分析之pandas笔记

Pandas

一个用于表示表格类型的内容

  • 课时4:jupyter21 分22 秒
  • 课时5:pandas的内容24 分31 秒
  • 课时6:series内容38 分19 秒
  • 课时7:dataframe25 分50 秒
# 载入pandas库
import pandas as pd
import numpy as np
s = pd.Series([2,4,6,8,10])
s
0     2
1     4
2     6
3     8
4    10
dtype: int64
d = pd.DataFrame([[2,4,6,8,10],[7,3,4,7,15],
])d
01234
0246810
1734715
d[0]
0    2
1    7
Name: 0, dtype: int64

这里要注意直接用中括号获取的是,列,因为比如我们要获取一个表中的age属性,通常的拿这age一列的数据出来,所以想要获取一条数据,需要再中括号一下

获取一行怎么获取

d.loc[0]
0     2
1     4
2     6
3     8
4    10
Name: 0, dtype: int64

这个给我们返回的是一个series
实际上这个dataframe是由多个series组成的
所以我们可以这么写

d2 = pd.DataFrame([pd.Series([2,4,6,8,10]),pd.Series([7,3,4,7,15]),
])
d2
01234
0246810
1734715
class1 = pd.Series({'hong': 50, 'huang': 90, 'qing': 60})# 修改字典索引
class1_values = {'hong': 50, 'huang': 90, 'qing': 60}
class1_index = ['hong', 'lv', 'lan']
# 这个地方的键是根据index参数设置的,然后前面的那个字典的键就不要了
class1 = pd.Series(class1_values, index=class1_index)
class1
hong    50.0
lv       NaN
lan      NaN
dtype: float64
class1# 值数据,输出类型为array,还是ndarray数组
class1.values# 索引,输出index类型(Pandas独有的索引类型),本质上就是ndarray
class1.indexclass1.index[2]
class1.index.values
array(['hong', 'lv', 'lan'], dtype=object)
class1_index
class1.hong
50.0
class1[[1,2,0]]
lv       NaN
lan      NaN
hong    50.0
dtype: float64
class1[0:1]
hong    50.0
dtype: float64
# 直接就能记性判断
class1 > 6
# 这个Nan值你怎么判断都是False
hong     True
lv      False
lan     False
dtype: bool
# 还能这样写
# 这种写法很类似于数据库的写法
class1[class1>6]
hong    50.0
dtype: float64
# 直接就全都加一
class1+1
hong    51.0
lv       NaN
lan      NaN
dtype: float64
  • 这种整体的加一,他是效率非常非常高的
  • 如果是我们的列表,想要实现这个效果,那就得循环这个列表
    从列表中获取一个数据,把这个数据+1,放到新的列表中
  • 而我们这个是将三条数据同时拿出来(就像并发一样),然后同时进行+1操作
    然后在同时放到一个新的里面.
  • 我们可以通过那个运算时间的魔术命令来帮忙验证一下
%%timeit
# 修改字典索引
class2_values = [1024,3,5,7,9,10,13,115,127,149,221]
# 这个地方的键是根据index参数设置的,然后前面的那个字典的键就不要了
class2 = pd.Series(class2_values)
class2+1
198 µs ± 9.37 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
%%timeit
class2+1
100 µs ± 3.56 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
%%timeit
for i in range(100000):i+=1
4.12 ms ± 108 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%%timeit
a = pd.Series(range(100000))
a+1
562 µs ± 72 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

我猜可能是因为这个数据量不够大,还显示不出来这个库的优势,所以得多试试才行
有的时候需要用GPU来计算,如果用CPU,会非常耗CPU,因为GPU更擅长这种小量的计算,他就相当于一堆小学生,这中加减乘除,小学生比CPU数学家更厉害

# 不仅能够进行加,减号,还能乘除,取余,底板除
print(class2 // 2) 
11.0
11.0
class2 = pd.Series([1024,3,5,7,9,10,13,115,127,149,221])
# 平均数
print(class2.mean())
print(np.mean(class2))
class2
153.0
153.00     1024
1        3
2        5
3        7
4        9
5       10
6       13
7      115
8      127
9      149
10     221
dtype: int64
class3 = pd.Series([1024,13,5,7,9,10,1,115,127,149,221])
# 中位数
# 通过库中的函数调用
print(np.median(class3))
# 自身属性调用写法
print(class3.median())
# 中位数如果有两个数据,那就是这两个数据的平均数
13.0
13.0
# 方差
class2.var()
89190.6
# 标准差
class2.std()
298.6479532827908
print(class2)
print("-"*50)
print(class2+1)
print("-"*50)
# 全判断在不在容器中
# 这个容器包括类似于字典的键和值,都都算上,只有有都行,都算存在啊
print(10 in class2)
print("-"*50)
print(5 in class2 + 1)
# 浮点数运算不准的问题
0     1024
1        3
2        5
3        7
4        9
5       10
6       13
7      115
8      127
9      149
10     221
dtype: int64
--------------------------------------------------
0     1025
1        4
2        6
3        8
4       10
5       11
6       14
7      116
8      128
9      150
10     222
dtype: int64
--------------------------------------------------
True
--------------------------------------------------
True
# 然后问我们可以取出来values
print(4 in class2) 
print(4 in class2.values)
True
False
# values值修改
class2['ming'] = 0
class2['hua'] = 0
class2['hong'] = 0class2[['hua','hong']] = 55
class2[['hua','hong']] = [35, 55]
class2['hua','hong'] = [1, 2]  # 一层也可以
class2
0       1024
1          3
2          5
3          7
4          9
5         10
6         13
7        115
8        127
9        149
10       221
ming       0
hua        1
hong       2
dtype: int64
# 深拷贝
class4 = class2.copy()
class4 = class4+1
print(class2)
class4
0       1024
1          3
2          5
3          7
4          9
5         10
6         13
7        115
8        127
9        149
10       221
ming       0
hua        1
hong       2
dtype: int640       1025
1          4
2          6
3          8
4         10
5         11
6         14
7        116
8        128
9        150
10       222
ming       1
hua        2
hong       3
dtype: int64
# 索引也可以单独的进行修改
class2.index = [22,23,24,28,24,29,1,2,3,4,8,5,9,21]
class2
22    1024
23       3
24       5
28       7
24       9
29      10
1       13
2      115
3      127
4      149
8      221
5        0
9        1
21       2
dtype: int64
# 这个csv路径不能有中文,否则获取失败
df = pd.read_csv("./source/test.csv")
df
roc1c2c3c4c5c6c7c8c9c10c11c12c13c14c15c16c17c18
0a0510101010101010101010101010101010
1b1611111111111111111111111111111111
2c2712121212121212121212121212121212
3d3813131313131313131313131313131313
4e4914141414141414141414141414141414

csv中的数据都是用逗号隔开的,出自:
python:pandas——read_csv方法

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

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

相关文章

Apache日志记录组件Log4j出现反序列化漏洞 黑客可以执行任意代码 所有2.x版本均受影响...

开源的东西用的人多了,自然漏洞就多。Apache用于日志记录的组件Log4j使用非常灵活,在相当多的开源项目中都有使用,此次漏洞影响所有Apache Log4j 2.*系列版本: Apache Log4j 2.0-alpha1 – Apache Log4j 2.8.1,使用Jav…

react接收后端文件_React获取Java后台文件流并下载Excel文件流程解析

记录使用blob对象接收java后台文件流并下载为xlsx格式的详细过程,关键部分代码如下。首先在java后台中设置response中的参数:public void exportExcel(HttpServletResponse response, String fileName, String sheetName,List titleRow, List> dataRo…

Python常见的170道面试题全解析答案

个人博客点这里 语言特性 1. 谈谈对 Python 和其他语言的区别 答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植、可扩展,可嵌入的解释型编程语言,属于动态语言。 …

WMA文件信息格式分析及代码

WMA文件信息格式分析及代码 收藏 ASF文件和WMA文件格式差不多。具体请看下面我写的代码。文件分析根据mplayer其中的asfhead.c提供的代码进行分析。mplayer只解除出了标准的wma头信息,其扩展信息并没有解析出来。代码如下. /*每一个WMA文件,它的头16个字…

[No0000101]JavaScript-基础课程1

JavaScript 是一种轻量级的编程语言,很容易学习,同时也是一种被广泛用于客户端Web开发的脚本语言。通过本课程学习,我们可以了解到JavaScript的基本语法知识,以及怎样使用它去创建简单的游戏和应用。 1.获取字符的长度 "youN…

研究人员发现Office Word 0Day攻击 这个漏洞绕过了word宏安全设置 绿盟科技、McAfee及FireEye发出警告...

这次的0Day漏洞确实很厉害,以往攻击者诱使用户点击Word文档,由于其中包含了恶意脚本,大多数需要用户启用了宏。但这次的漏洞不是,受害者无需启用宏,也会中招,而且漏洞覆盖Windows所有版本(包括W…

秀米svg点击显示另一张图_SVG的雷,你踩过了没?

原标题:SVG的雷,你踩过了没?随着SVG互动布局的出现和在H5的应用越来越多,不少小伙伴们会想在秀米里上传自己制作的SVG图形。秀米的首页顶部教程收录了一篇关于SVG图形的讲解:「秀米的SVG图片」,里面主要介绍…

关于C10K问题详解-突破单机性能是高性能网络编程

本文转自:https://www.jianshu.com/p/ba7fa25d3590 C10K问题由来 随着互联网的普及,应用的用户群体几何倍增长,此时服务器性能问题就出现。最初的服务器是基于进程/线程模型。新到来一个TCP连接,就需要分配一个进程。假如有C10K,…

数据中心传输需求成以太网市场巨大推动力

近日,市场研究机构Infonetics作出评估称,数据中心以太网市场将迎来全面发展的势头,其驱动力则在于当前数据中心以太网络交换接口由10Gbps产品向25Gbps乃至50Gbps标准的大规模升级。 根据对2014年第三季度的市场销售情况研究,该公司…

Gina DLL

Windows的开机密码认证模块一般是由Gina DLL完成的。在NT/2000中交互式的登陆支持是由WinLogon调用GINA DLL实现的,GINA DLL提供了一个交互式的界面为用户登陆提供认证请求。1.Gina原理WinLogon会和GINA DLL进行交互,缺省是MSGINA.DLL(在System32目录下)…

ultilize什么意思_ultilize是什么意思

1. We also ultilize the supports of NSFC for other valuable researches.我们还利用基金支持,做了其他一些有价值的科研工作。2. Recover the second segment with all due haste, ultilize any means necessary.尽快取回第二部分,使用任何必要的手段…

HTML,CSS的class与id命名规则

个人博客点这里 最重要的部分先说(命名书写格式) 常见的格式有:连接符(search-btn)、下划线、全小(searchbox)、小驼峰(searchBox)。 现在用得多广泛的还是第一种使用连接符,易读…

主打“云安全” 迅雷系帝恩思登陆新三板

ZD至顶网安全频道 06月14日 综合消息: 6月14日上午,帝恩思(837018)敲响了登陆新三板的钟声。作为帝恩思的重要股东,迅雷(NASDAQ:XNET)CEO邹胜龙与帝恩斯董事长王宇杰、总经理许渊培等人一同参加了这一仪式。 帝恩斯是一…

UESTC 1636 梦后楼台高锁,酒醒帘幕低垂

题意&#xff1a;求一条路径&#xff0c;使得这条边连接1到n&#xff0c;求边权值的最大值与最小值的差 题解&#xff1a;最小生成树&#xff0c;对边权排序&#xff0c;可以枚举边的最大和最小的值&#xff0c;判断能否使得1和n连通 #include <bits/stdc.h> #define ll …

wav文件格式分析详解

wav文件格式分析详解 作者&#xff1a;曹京日期&#xff1a;2006年7月17日 一、综述 WAVE文件作为多媒体中使用的声波文件格式之一&#xff0c;它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写&#xff0c;每个WAVE文件的头四个字节便是“RIFF…

pg数据库开启远程连接_Postgresql开启远程访问的步骤全纪录

前言安装PostgreSQL数据库之后&#xff0c;默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器&#xff0c;就需要进行相应的配置。下面话不多说了&#xff0c;来一起看看详细的介绍吧。步骤如下&#xff1a;要在Postgresql中允许远程访问,需要设置如下2…

Vue.js前后端分离2

个人博客点这里 内容回顾 - 过滤器 - 局部的过滤器 // 只能在当前组件内部使用 filters:function(val,a,b){// 执行过滤处理逻辑,(添油加醋的内容)return xxx; }- 全局的过滤器 // 声明创建 在任何组件中都能使用 Vue.filter("myTime",function() {// 添油加醋的…

WORD列表缩进的文本起始点

Figure 1 Figure 2 Figure 3 编号位置以刻度尺为起点0.74厘米&#xff08;2个字符间距&#xff09;&#xff0c;文本缩进以刻度尺为起点2.96厘米&#xff08;8个字符间距&#xff09; 以上两者相减得到的值正好特殊格式悬挂缩进的值2.22厘米 Figure 4 上图看到&#xff0c;文本…

无人车火了 百度是如何做到的?

ZD至顶网服务器频道 03月02日 新闻消息&#xff08;文/于泽&#xff09;&#xff1a;百度无人车可谓狠狠的吸足了大众的眼球。一个问题逐渐出现在我们心中&#xff0c;为什么百度这样的互联网企业会推出无人车&#xff0c;似乎搜索引擎和无人车之间的关联度并不是很高。 谜题的…

测绘技术设计规定最新版_测绘技术设计规定

《》是中国测绘出版社出版图书&#xff0c;下面小编给大家介绍关于的相关资料&#xff0c;希望对您有所帮助。《》内容国家测绘地理信息局法规与行业管理司编著的《(2014)》是一本关于测绘资质管理规定和测绘资质分级标准的书。具体内容包括&#xff1a;大地测量专业标准、测绘…