数据分析02 /pandas基础
数据分析02 /pandas基础
1. pandas简介
numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类型的数据(字符串,时间序列),那么pandas就可以帮我们很好的处理除了数值型的其他数据!
pandas中的两个常用的类:Series/DataFrame
2. Series
定义:
Series是一种类似一维数组的对象,由下面两个部分组成:
values:一组数据(ndarray类型)
index:相关的数据索引标签
Series的创建
1.由列表或numpy数组创建
2.由字典创建
代码示例:
import pandas as pd
from pandas import Series,DataFrame
import numpy as np # 方式一:
s1 = Series(data=[1,2,3,4,5]) # 方式二:
s2 = Series(data=np.random.randint(0,100,size=(4,))) # 方式三:
dic = {
'a':1,
'b':2,
'c':3
}
# Series的索引可以为字符串
s3 = Series(data=dic) # Series这个数据结构中存储的数据一定得是一个维度
Series的索引
1.隐式索引:数值型,默认是隐式索引
2.显式所用:自定义(字符串),提高数据的可读性
代码示例:
# index指定显式索引
s4 = Series(data=[1,2,3],index=['数学','英语','理综'])
Series的索引和切片
1.索引操作
# 隐式索引操作
s4[0]
# 显示索引操作
s4['数学']
s4.数学
2.切片
s4[0:2]
Series的常用属性
- shape:形状; 例:s4.shape
- size:大小; 例:s4.size
- index:行索引; 例:s4.index
- values:列索引; 例:s4.values
Series的常用方法
1.head(),tail()
s4.head(2) # 显式前n条数据
s4.tail(2) # 显式后n条数据
2.unique()
s = Series(data=[1,1,2,2,3,4,5,6,6,6,6,6,6,7,8])
s.unique() # 对Series进行去重
3.add() sub() mul() div() /Series的算术运算
s + s 相当于 s.add(s)
算数运算的法则:索引与之匹配的值进行算数运算,否则补空
s1 = Series(data=[1,2,3,4])
s2 = Series(data=[5,6,7])
s1 + s2 # 结果:
0 6.0
1 8.0
2 10.0
3 NaN
dtype: float64
4.isnull(),notnull()/应用:清洗Series中的空值
s1 = Series(data=[1,2,3,4],index=['a','b','c','e'])
s2 = Series(data=[1,2,3,4],index=['a','d','c','f'])
s = s1 + s2
s # 结果:
a 2.0
b NaN
c 6.0
d NaN
e NaN
f NaN
dtype: float64 # 清洗结果的空值:boolean可以作为索引取值
s[s.notnull()]
3. DataFrame
DataFrame简介
DataFrame是一个【表格型】的数据结构。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。
- 行索引:index
- 列索引:columns
- 值:values
DataFrame的创建
1.ndarray创建
2.字典创建
示例:
df = DataFrame(data=np.random.randint(0,100,size=(5,6)))
df
dic = {
'name':['zhangsan','lisi','wangwu'],
'salary':[10000,15000,10000]
}
df = DataFrame(data=dic,index=['a','b','c'])
df
DataFrame的属性
- df.values:所有的值
- df.shape:形状
- df.index:行索引
- df.columns:列索引
DataFrame索引操作
1.对列进行索引
# 索引取单列
df['name'] # 索引取多列
df[['age','name']]
2.对行进行索引
# 索引取单行
df.loc['a'] # 显示索引操作
df.iloc[0] # 隐式索引操作 # 索引取多行
df.loc[['a','c']] # 显示索引操作
df.iloc[[0,2]] # 隐式索引操作
3.取单个元素
df.loc['b','salary'] # 显示索引操作
df.iloc[1,1] # 隐式索引操作
4.取多个元素值
df.loc[['b','c'],'salary'] # 显示索引操作
df.iloc[[1,2],1] # 隐式索引操作
DataFrame的切片操作
1.对行进行切片
# 切行
df[0:2]
2.对列进行切片
# 切列
df.iloc[:,0:2]
DataFrame的运算:和Series是一样
元素对应的行列索引保持一致,则元素间可以进行算数运算,否则补空
查看df的数据的数据类型
df.dtypes
df.info():信息更全
时间数据类型的转换:pd.to_datetime(col)
示例:
dic = {
'time':['2019-01-09','2011-11-11','2018-09-22'],
'salary':[1111,2222,3333]
}
df = DataFrame(data=dic) # 将time列转换成时间序列类型
df['time'] = pd.to_datetime(df['time']) # 转换前time的类型是:object
# 转换后time的类型是:datetime64[ns]
# 转换后可以进行datetime64[ns]类型相关的操作
将某一列设置为行索引:df.set_index()
示例:
# 将time这一列作为原数据的行索引
df.set_index(df['time'],inplace=True) # inplace将新表替换原表 # 将之前的time列删掉
df.drop(labels='time',axis=1,inplace=True) # drop函数中axis的0行,1列
4. 总结:
- 将查出来的数据写入文件中:df.to_csv('文件路径')
- 将文件中的数据查出来/pd调用:data = pd.read_csv('文件路径'); 显示前5行:data.head()
- 将时间转换成时间序列化/pd调用:df['date'] = pd.to_datetime(df['date'])
- 使用drop时axis=1代表的是列:df.drop(labels='Unnamed: 0',axis=1,inplace=True),inplace是判断是否用新表替换原表
- data.resample('M'):年:A | 月:M |日:D
- df.info():查看数据的详细信息
- df.describe():返回数据统计的描述
数据分析02 /pandas基础的更多相关文章
- 利用Python进行数据分析(12) pandas基础: 数据合并
pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...
- 利用Python进行数据分析(9) pandas基础: 汇总统计和计算
pandas 对象拥有一些常用的数学和统计方法. 例如,sum() 方法,进行列小计: sum() 方法传入 axis=1 指定为横向汇总,即行小计: idxmax() 获取最大值对应的索 ...
- 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作
一.reindex() 方法:重新索引 针对 Series 重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础
在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...
- 利用Python进行数据分析(10) pandas基础: 处理缺失数据
数据不完整在数据分析的过程中很常见. pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据. pandas使用isnull()和notnull()函数来判断缺失情况. 对于缺失数据一般处理 ...
- 数据分析:pandas 基础
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据 ...
- python数据分析02语法基础
在我来看,没有必要为了数据分析而去精通Python.我鼓励你使用IPython shell和Jupyter试验示例代码,并学习不同类型.函数和方法的文档.虽然我已尽力让本书内容循序渐进,但读者偶尔仍会 ...
- 利用Python进行数据分析(15) pandas基础: 字符串操作
字符串对象方法 split()方法拆分字符串: strip()方法去掉空白符和换行符: split()结合strip()使用: "+"符号可以将多个字符串连接起来: join( ...
随机推荐
- FastStone+ImageReady+Kutools plus导入图片到Excel单元格
先前打算自己做一个也附带训练下,发现有下面方法也好. 1)做帮助文档时需要一种格式(需要将图片导入到Excel中时,假如是按此法归类汇总) 2)FastStone滚动截图 粘贴到Photo ...
- 什么是Galil(加利尔)运动控制卡,它是用来干嘛的呢?galil开发文件dmc32.dll,动态链接库,API
什么是Galil(加利尔)运动控制卡,它是用来干嘛的呢?运动控制卡是基于PC总线,利用高性能微处理器(如 DSP)及大规模可编程器件实现多个伺服电机的多轴协调控制的一种高性能的步进/伺服电机运动控制卡 ...
- psp表格
陈康杰psp表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 Estimate 估计这个任务 ...
- idea的maven项目无法引入junit类
本机:java版本:1.8 pom中是junit版本:4.12 出现问题:在使用@Test 无法引入 : org.junit.Test; 解决方法:junit在pom.xml改为 4.12-beta- ...
- leetcode125. 验证回文串 python 简单
125. 验证回文串 难度简单 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: &quo ...
- VMware 15安装Ubuntu 16.04并配置环境
VMware(虚拟机)是指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统,它能在Windows系统上虚拟出多个计算机,每个虚拟计算机可以独立运行,可安装各种软件与应用等 ...
- 入门大数据---基于Zookeeper搭建Kafka高可用集群
一.Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群. 1.1 下载 & 解压 下载对应版本 Zooke ...
- Python实用笔记 (5)使用dictionary和set
dictionary 通过键值存储,具有极快的查找速度,但占用空间比list大很多 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = ['Micha ...
- html+css快速入门教程(1)
1 HTML简介 1.1. 什么是HTML?(了解) HTML是超文本标记语言(HyperText Markup Language,HTML)的缩写.是标准通用标记语言(SGML Standard G ...
- P5676 [GZOI2017]小z玩游戏【Tarjan】
小z玩游戏 Tarjan算是板子题吧,但是要稍微做一些修改,建边需要多考虑,建立"虚点". 题目描述 小 z 很无聊. 小 z 要玩游戏. 小 z 有\(N\)个新游戏,第\(i\ ...