第三周的课程pandas 分析数据

http://pandas.pydata.org

import pandas as pd

常与numpy matplotlib 一块定义

d=pd.Series(range(20))

d.cumsum()

主要提供两个数据类型

Series DataFrame

基于上述数据类型的各类操作

很好的表示和封装

numpy         更关注数据的结构表达 数据之间构成的维度

pandas        基于numpy 实现的扩展库

建立其应用与索引之间的关系

Series 数据和索引  series类型由一组数据与索引构成

a=pd.Series([9,8,7,6])

会自动增加一个索引

沿用numpy中的类型

更强大的索引能力

b=pd.Series=([9,8,7,6],index=['a','b','c','d'])

b

自定义索引的写法 ↑

对于其每一个数据都会关联一个索引(自动生成或者自定义索引)

Series 可以由 python列表 标量值其它函数 python字典 numpy ndarray

这里是Series 的创建

1 标量创建

s=pd.Series(25,index=['a','b','c'])

这里的index=不可省略

2 字典创建

d=pf.Series({"a":9,"b":8,"c":7})

这样的话 key -> index

value ->value

e=pd.Series({'a':9,'b':8,'c':7},index=['c','b','a'])

这里的index制定了形状

e

c 7.0

a 9.0

b.8.0

d Nan

以上的字典构造Series 的两种方式

3 ndarray中创建

n=pd.Series(np.arrange(5))

m=pd.Series(np.arrange(5),index=np.arrange(9,4,-1))

Series 的基本操作

import pandas as pd

b=pd.Series([9,8,7,6],['a','b','c','d'])

b.index

b.values

获得index 和 values

Series = index + ndarray

b[1]

8

b['b']

8

两套索引可以并存,但是不能混用

可以用自定义索引的列表进行切片

可以通过自动索引进行切片

b[3] 第3个

b[:3]  0-3个

Series 类型切出来还是Series 类型

b[b>b.median()]  所有大于元素中位数的项

输出Series类型

是Series 就有index 和 values

对Series的运算都是返回Series

类似字典类型

可以通过自动索引进行切片,而且索引和值会被一同切片

保留字 in

'c' in b   判断c是不是b的索引的一部分(只判断自定义索引,不会判断自动索引)

True

方法 .get()

b.get('f',100) 得到 ‘f’对应的值,没有就返回100(默认)

Series 的对齐操作

a=pd.Series([1,2,3,],['c','d','e'])

b=pd.Series([9,8,7,6],['a','b','c','d'])

a+b

索引相同的元素相加,索引不同的项不管

有数据+没有值=没有值

这是一个对齐问题(更加精确,更加不容易出错)

对象和索引都可以有一个书名,存储在.name

b.name    对象的名字

b.index.name 索引的名字

Series类型的修改

随时修改并且即刻生效

b['b','c']=20  修改索引为'b','c'的元素

基本操作之间存在对齐问题 , 根据索引对齐

带标签数组的含义就是

DataFrame 类型

是由公用相同索引的一组列组成

index\column axis=1

index_0  data_a ...

index_1  data_b ...

    ...

axis=0

表格型的数据类型

常用二维数据

DataFrame的创建

二维nd.array对象

由一维ndarray ,列表,字典,元组,Series 构成的字典

Series 类型

其他的Dataframe创建

import pandas as pd

import numpy as np

d=pd.DataFrame(np.arrange(10).reshape(2,5))

d

  0 1 2 3 4

0    0 1 2 3 4

1    5 6 7 8 9

使用字典创建 DataFrame

dt={"one":pd.Series([1,2,3],index=['a','b','c']) ,

"two":pd.Series([9,8,7,6],index=['a','b','c','d'])

}

每一个字典键值对,对应一个column

d=pd.DataFrame(dt)

d

  one two

a    1   9

b    2   8

c    3   7

d   nan 6

有一点点像自动对齐

pd.DataFrame(dt,index=['b','c','d'],column=['two','three'])

这里也同样是指定形状

有一点像自动对齐的规则

  two three

b    8    nan

c    7    nan

d    6    nan

还可以通过列表类型的字典创建

dl={'one':[1,2,3,4],'two':[9,8,7,6]}

key:List 分别对应两个column ,columnvalues

d=pd.DataFrame(dl,index=['a','b','c','d'])    只指定index

用字典的话column顺序 不一定与字典中相同

d.columns

d.index

返回Series  (index)

d.values

返回ndarray

D['同比']获得其中某一列(column)  Series

d.ix[] 获得其中的某一行(row)         Series

d["同比"][“c2”]  先列(column)后行  奇怪。。(看上面的取值方法)

d.ix['c2'][同比]  这样就先行(row)后列了吧(column)

二维带标签的数组

Python数据分析与展示[第三周](pandas简介与数据创建)的更多相关文章

  1. Python数据分析与展示[第三周](pandas数据类型操作)

    数据类型操作 如何改变Series/ DataFrame 对象 增加或重排:重新索引 删除:drop 重新索引 .reindex() reindex() 能够改变或重排Series和DataFrame ...

  2. Python数据分析与展示[第三周](pandas数据特征分析单元8)

    数据理解 基本统计 分布/累计统计 数据特征 数据挖掘 数据排序 操作索引的排序 .sort_index() 在指定轴上排序,默认升序 参数 axis=0 column ascending=True ...

  3. python数据分析及展示(三)

    一.Pandas库入门 1. Pandas库的介绍 http://pandas.pydata.org Pandas是Python第三方库,提供高性能易用数据类型和分析工具 import pandas ...

  4. Python数据分析与展示第3周学习笔记(北京理工大学 嵩天等)

    入门学习马上结束辽. 1.Pandas库 import pandas as pd 两个数据类型:Series,DataFrame Series类型:数据+索引 自定义索引 b = pd.Series( ...

  5. Python数据分析与展示第2周学习笔记(北理工 嵩天)

    单元4:Matplotlib库入门 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt # -*- cod ...

  6. Python数据分析与挖掘所需的Pandas常用知识

    Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...

  7. 【学习笔记】PYTHON数据分析与展示(北理工 嵩天)

    0 数据分析之前奏 课程主要内容:常用IDE:本课程主要使用:Anaconda Anaconda:一个集合,包括conda.某版本Python.一批第三方库等 -支持近800个第三方库 -适合科学计算 ...

  8. Python数据分析:手把手教你用Pandas生成可视化图表

    大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后, ...

  9. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

随机推荐

  1. [转]在C#代码中应用Log4Net系列教程(附源代码)

    Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...

  2. 修改linux命令行的提示符PS1

    # If not running interactively, don't do anything [ -z "$PS1" ] && return # check ...

  3. csp-s模拟48,49 Tourist Attractions,养花,画作题解

    题面:https://www.cnblogs.com/Juve/articles/11569010.html Tourist Attractions: 暴力当然是dfs四层 优化一下,固定两个点,答案 ...

  4. Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---组合模式之Menus[转]

     1  2{<HeadFirst设计模式>之组合模式 }  3{ 组合与单项的抽象父类           }  4{ 编译工具:Delphi2007 for win32}  5{ E-M ...

  5. tmux连接时多个显示器分别显示不同的窗口大小

      如果两个电脑连接同一个tmux,但是他们各自的显示器大小不同,那么就会在一个显示器部分会显示灰色区.在tmux里面有个设置可以更改,在tmux里面输入命令 tmux set-window-opti ...

  6. 简单易学的机器学习算法—SVD奇异值分解

    简单易学的机器学习算法-SVD奇异值分解 一.SVD奇异值分解的定义     假设M是一个的矩阵,如果存在一个分解: 其中的酉矩阵,的半正定对角矩阵,的共轭转置矩阵,且为的酉矩阵.这样的分解称为M的奇 ...

  7. 前端存取cookie

    1.存cookie document.cookie="user_phone="+loginMake1Value;//存手机号码cookie//'user_phone'为cookie ...

  8. 一维、二维数组 与 常用的返回数组 以及 fetch_all与fetch_row的区别

    一维数组:单行单列的数组. 二维数组:多行多列的数组.       (至少两行两列) 索引数组: fetch_all() 返回所有数组 fetch_row() 返回一行或一列数组  (第二行需要输入两 ...

  9. 数据库访问技术 odbc dao rdo uda jet oledb

    一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...

  10. Vuejs实战项目四:权限校验

    路由跳转参考文档:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html 在/src下创建permission.js进行权限 ...