如何将多个一维列表转化为二维列表_数据分析2_如何处理一维、二维数据

38b3830ac513e90e4d7626ab1403b75d.png
吞一块大饼,还不如切成小块吃得香

常见的数据集,要么是数列,要么是表格;

因此,数据分析最首要的是,处理一维、二维数据。

主要知识点可参考如图。

8fd0ce7a4c81e879f863254e2fa38756.png

如需要,可点击以下百度网盘链接下载数据分析基础知识图PDF:

mindmap2_数据分析基础.pdf
308.7K
·
百度网盘

数据分析常用第三方包

  • Numpy
  • Pandas
  • Matplotlib
#导入numpy包
import numpy as np
#导入pandas包
import pandas as pd

1. 一维数据

  • Numpy(Numerical Python): Array
  • Pandas: Series

1.1 Numpy-Array

#定义:一维数组array
#参数:一个列表[2,3,4,5]
a = np.array([2,3,4,5])
#查询
a[0]
2
#切片访问:获取指定序号范围的元素
#a[1:3]获取到的是序号从1到3的元素
a[1:3]
array([3, 4])
#切片访问:反序
a[::-1]
array([5, 4, 3, 2])
#循环访问
for i in range(len(a)):print(a[i])
2
3
4
5
#循环访问
for i in a:  # 获取a数组里面的数据,从i=2开始print(a[i-2])
2
3
4
5
#循环访问
for i in a:print(i)
2
3
4
5
#查看数据类型
a.dtype
dtype('int32')
#统计计算:平均值
a.mean()
3.5
#统计计算:标准差
a.std()
1.118033988749895
#向量化计算:向量相加
b=np.array([1,2,3])
c=np.array([4,5,6])
b+c
array([5, 7, 9])
#向量化计算:乘以标量
d=b*4
d
array([ 4,  8, 12])

区别:Numpy数组&Python列表

  • 1.处理多维数组
    • ndArray
    • list嵌套
  • 2.存储、运算效率
    • Array > list
  • 3.元素数据类型
    • Array:必须相同
    • List:可不同

1.2 Pandas-Series

#定义:一维数据结构:Series,index为索引
#存放6家公司某一天的股价(单位是美元)
stockS=pd.Series([54.74,190.9,173.14,1050.3,181.86,1139.49],index=['腾讯','阿里巴巴','苹果','谷歌','Facebook','亚马逊'])
stockS

37e991fd9cb3e6244afee8295292dab5.png
#获取描述统计信息
stockS.describe()

fe0afe8a4a70a89fb32d1ca7b5e31625.png

统计信息含义如下

  • 数据条数count
  • 平均值mean
  • 标准差std
  • 最小值min下四位数25%
  • 中位数50%
  • 上四位数75%
  • 最大值max
#访问:iloc属性用于根据下标获取值
stockS.iloc[0]
54.74
#访问:loc属性用于根据索引获取值
stockS.loc['腾讯']
54.74
#向量化运算:向量相加
s1=pd.Series([1,2,3,4],index=['a','b','c','d'])
s2=pd.Series([10,20,30,40],index=['a','b','e','f'])
s3=s1+s2
s3

41a22cfb44ef331fa5bada70551ee422.png
#处理空值的方法
#方法1:删除
s3.dropna()

87e8447f206216496de9645019685ef1.png
#方法2:填充
s3=s1.add(s2,fill_value=0)
s3

2ab02a3cda8327af318ed046f8b928eb.png

2.二维数据

  • Numpy: Array
  • Pandas: DataFrame
  • DataFrame处理表格数据比较方便

2.1 Numpy-Array

#定义二维数组
a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]
])
#访问:获取元素
#行号0,列号2
a[0,2]
3
#访问:整行
#获取第1行
a[0,:]
array([1, 2, 3, 4])
#访问:整列
#获取第1列
a[:, 0]
array([1, 5, 9])
#数轴参数 axis
#axis=0,down,纵向处理
#axis=1,across,横向处理#所有平均值
print(a.mean())#每行平均值,即每一行取所有列的平均值
print(a.mean(axis=1))#删除某一列,即列(集)沿着水平的方向依次删掉
#a.drop(colNames,axis=1)6.5
[ 2.5  6.5 10.5]

492274e7a9df8937c62f2b47bc4b036b.png

2.2 Pandas-DataFrame

#定义
#第1步:定义一个字典,映射列名与对应列的值
#现Python3的字典对象为有序
salesDict={'购药时间':['2018-01-01 星期五','2018-01-02 星期六','2018-01-06 星期三'],'社保卡号':['001616528','001616528','0012602828'],'商品编码':[236701,236701,236701],'商品名称':['强力VC银翘片','清热解毒口服液','感康'],'销售数量':[6,1,2],'应收金额':[82.8,28,16.8],'实收金额':[69,24.64,15]
}#第2步:定义数据框DataFrame
salesDf=pd.DataFrame(salesDict)
salesDf

d3dcdc930cb827a8cdd443ec7aa88372.png
#平均值:是按每列来求平均值
salesDf.mean()

ca70f9e3eb769b1c83efb9ba37ad763e.png
#访问:iloc属性用于根据下标获取值
#查询第1行第2列的元素
salesDf.iloc[0,1]
'001616528'
#获取第1行,:代表所有列
salesDf.iloc[0,:]

4ee731dbd63a6001a6d947291ba8e527.png
#获取第1列,:代表所有行
salesDf.iloc[:,0]

0b5d4a0865420c218b70cc158d4fb630.png
#访问:loc属性用于根据索引名获取值
#查询第1行商品编码列的元素
salesDf.loc[0,'商品编码']
236701
#获取“商品名称”这一列
#salesDf.loc[:,'商品名称']
salesDf['商品名称']  #简单方法

d89f6f1cb3b4663da503296a6fa5644f.png

3.查询操作

3.1 查询列

#指定列
#通过列表来选择某几列的数据
salesDf[['商品名称','销售数量']]

436f46d238529d7249b5b9b5fec6a796.png
#指定连续的列
#通过切片功能,获取指定范围的列
salesDf.loc[:,'购药时间':'销售数量']

39147a0c69e893f3963cf4bbdefd5a33.png

3.2 条件筛选

#第1步:构建查询条件,对象是Series,数据元素是bool
querySer=salesDf.loc[:,'销售数量']>1
type(querySer)
pandas.core.series.Series
querySer

ec96d198a460e11e904f1b122c60ba60.png
#第2步:应用查询条件
#只能指定列
#Error:salesDf.loc[:,querySer]
salesDf.loc[querySer]

4d1a25cd5bf19c6fd4c4af3fa399e306.png
salesDf.loc[querySer,'商品编码':'销售数量']

41a6584367694f7e0b4a9eca1f727149.png
#多个条件删选
querySer1=salesDf.loc[:,'商品名称']!='感康'
salesDf.loc[querySer1&querySer]

e185dfaf5b86276b1e6e737aebbbd0ec.png

上一章:

Queenie:数据分析1_入门Python​zhuanlan.zhihu.com
c041e34d8bd936c44e547d2f9b355d1c.png

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

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

相关文章

关于java中锁的面试题_Java面试题-Java中的锁

1. 如何实现乐观锁(CAS)?如何避免ABA问题?答:1)读取内存值的方式实现了乐观锁(比如:SVN系统),方法:第一,比较内存值和期望值;第二,替换内存值为要替换值。2)带参数版本来…

NSUserDefaults

2019独角兽企业重金招聘Python工程师标准>>> NSUserDefaults 转载于:https://my.oschina.net/18829297883/blog/737931

什么是算术运算和逻辑运算_8086微处理器的算术和逻辑运算

什么是算术运算和逻辑运算逻辑指令 (Logical Instructions) a) AND: Logical AND a)AND:逻辑AND Atleast one of the operant should be a register or a memory operant both the operant cannot be a memory location or immediate operant. 操作中的至少一个应该…

h5引入json_Vue中如何使用本地Json文件?

我需要将菜单配置成Json文件,然后再程序中引入{{menu.name}}import menuListConfig from ../../config/menu.jsonexport default {name: "Sider",data(){return {menuList:JSON.parse(JSON.stringify(menuListConfig))}}}需要如何做,才能v-for…

python2和python3的默认编码_python2和python3哪个版本新

Python2 还是 Python3 ? py2.7是2.x系列的最后一个版本,已经停止开发,不再增加新功能。2020年终止支持。 所有的最新的标准库的更新改进,只会在3.x的版本里出现。Python3.0在2008年就发布出来,而2.7作为2.X的最终版本并…

使用python套用excel模板_Python自动化办公Excel-从表中批量复制粘贴数据到新表

1、模块安装 1)cmd模式下: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl 2)如果有安装Pycharm,则在程序中操作如下: 菜单栏&…

在HubSpot是如何应对Fat JAR困境的

在七月底,Spring Boot和Dropwizard分别发布了1.4和1.0版本,它们都是基于Fat JAR的。随着人们更多地采用这些框架和微服务架构,Fat JAR成为了通用的部署机制。\\Fat JAR技术会将Java应用的所有依赖打包到一个bundle之中,便于执行&a…

如何查看本地的崩溃log_过年回家,还怕抢不到票?程序员教你如何抢票

2019年接近尾声,距离春节回家的日子越来越近,26日起,2020年除夕火车票正式开售,抢票大战也进入白热化阶段。是否为某抢票 App 加速而烦恼,是否为车票“秒光而烦恼”。别慌,作为连“对象”都是 new 出来的程…

hashmap转红黑树的阈值为8_面试必考的 HashMap,这篇总结到位了

点击蓝色“JavaKeeper”关注我哟加个“星标”,一起成长,做牛逼闪闪的技术人1 概述HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长.HashMap是非线程安全的,只适用于单线程环…

Failed to start firewalld.service: Unit firewalld.service is masked.

2019独角兽企业重金招聘Python工程师标准>>> FireWall in Centos 7 masked How to resolve the error message belowFailed to issue method call: Unit firewalld.service is masked. The main reason a service is masked is to prevent accidental starting or e…

mysql第二个索引_MySQL高级第二章——索引优化分析

一、SQL性能下降原因1.等待时间长?执行时间长?可能原因:查询语句写的不行索引失效(单值索引、复合索引)CREATE INDEX index_user_name ON user(name);(底层做了一个排序)CREATE INDEX index_user_nameEmail ON user(name,email);查询关联join…

西瓜仿站高手v1.08官方正式版

2019独角兽企业重金招聘Python工程师标准>>> 西瓜仿站高手是一款绿色好用的由追风网络出品的网站模板批量下载软件,西瓜仿站高手是一款仿站工具,仿站神器。软件功能强大,能够帮你轻松帮你下载任意网站、任意模板,并且速…

用hundred造句子_八个有趣的开学破冰游戏,线上线下都能用

知道大家最近都很忙,所以省略开篇,直接上正题——开学“破冰游戏”走起!一、你比划我来猜把词语展示在PPT上,猜词的同学背对PPT,其他同学可以看到词语并且用身体动作把词语表现出来,直到猜词的同学可以把词…

cisco packet tracer路由器配置_【干货】思科交换机路由器怎么配置密码?

今天带大家看看如何在思科的交换机路由器当中配置安全特性,也就是密码的配置方式。在学习配置之前,我们先回顾一下密码相关知识。密码学是研究信息系统安全保密的科学。人类有记载的通信密码始于公元前400年,古希腊人是置换密码学的发明者。密…

codevs3872 邮递员送信(SPFA)

邮递员送信 时间限制: 1 Sec 内存限制: 64 MB提交: 10 解决: 5[提交][状态][讨论版] 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N。由于这个城市的交通比较繁忙,因此所有的道路都是单行的&#xff0…

java上传csv文件上传_java处理csv文件上传示例详解

前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理。readcsvutil工具类package com.hanfengyeqiao.gjb.utils;import java.io.*;import java.util.*;/*** csv工具类*/public cla…

360更新补丁一直提示正在安装_远程利用POC公布|CVE20200796:微软发布SMBv3协议“蠕虫级”漏洞补丁通告...

更多全球网络安全资讯尽在邑安全www.eansec.com0x00 事件描述2020年3月11日,360CERT监测到有海外厂家发布安全规则通告,通告中描述了一处微软SMBv3协议的内存破坏漏洞,编号CVE-2020-0796,并表示该漏洞无需授权验证即可被远程利用&…

字符串的回文子序列个数_计算给定字符串中回文子序列的数量

字符串的回文子序列个数Problem statement: 问题陈述: Given a string you have to count the total number of palindromic subsequences in the giving string and print the value. 给定一个字符串,您必须计算给定字符串中回文子序列的总数并打印该值…

适配接口 java_【Java 设计模式】接口型模式--Adapter(适配器)模式

简介:【Java设计模式】接口型模式–Adapter(适配器)模式Adapter模式的宗旨就是:向客户提供接口,并使用现有的类所提供的服务,以满足客户的需求。 或者说,现在有classA的方法满足客户的部分要求,将另一部分需…

deepinu盘制作工具_u盘启动盘制作工具怎么制作 u盘启动盘制作工具制作方法【详细步骤】...

在电脑城很多技术人员都会使用u盘装系统的方法给用户电脑安装系统,他们是怎么操作的呢?其实很简单,就是通过u盘启动盘来安装系统的。而u盘启动盘是需要用 u盘启动盘制作工具 来制作的。那么问题又来了,u盘启动盘制作工具怎么制作呢?下面就给…