一、Pandas

  pandas的数据元素包括以下几种类型:

类型 说明
object 字符串或混合类型
int 整型
float 浮点型
datetime 时间类型
bool 布尔型

二、Series与DataFrame区别:

  1. Series是带索引的一维数组
  2. Series对象的两个重要属性是:index(索引)和value(数据值)
  3. DataFrame的任意一行或者一列就是一个Series对象

三、创建Series对象:pd.Series(data,index=index)

  其中data可以是很多类型:

    1. 一个列表---------->pd.Series([1,2,3])
    2. 一个ndarray------->pd.Series(np.random.randint(2),index=['a','b'])
    3. 一个python字典---->pd.Series({"a":2,"b":0})
    4. 一个标量值-------->pd.Series(3,index=[1,2,3])

  Series在算数运算中会自动对齐不同索引的数据:

    例如:

 >>> s=pd.Series([1,2,3],index=['a','b','c'])
>>> a=pd.Series([4,1,0],index=['b','a','c'])
>>> s+a
a 2
b 6
c 3

      unique():返回结果是一个数组,包含Series去重后的元素

      value_counts():查看每一个唯一元素的频数

四、创建DataFrame对象:pd.DataFrame(data,index,columns)

  与Series不同的是,DataFrame包括索引index和表头columns:

  其中data可以是很多类型:

    1. 包含列表、字典或者Series的字典
    2. 二维数组
    3. 一个Series对象
    4. 另一个DataFrame对象

   例如:

   1、从字典创建:

 >>> d = {'one':pd.Series([1,2,3],index=['a','b','c']), 'two':pd.Series([2,3,4],index=['a','b','d'])}
>>> pd.DataFrame(d)
  one two
a 1.0 2.0
b 2.0 3.0
c 3.0 NaN
d NaN 4.0

   2、从字典创建

 >>> pd.DataFrame(d,index=['a','b'],columns=['w1','w2'])
w1 w2
a NaN NaN
b NaN NaN
>>> pd.DataFrame(d,index=['a','b'],columns=['one','two'])
one two
a 1 2
b 2 3

五、DataFrame的数据筛选

  与Series类似,可通过布尔表达式按照一定条件进行筛选。不同于Series的是,DataFrame布尔筛选返回的是满足筛选条件的样本的所有列的数据(即:一返回就是一条记录)。

  上例子!

 >>> d = {'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([2,3,4],index=['a','b','d'])}
>>> pd.DataFrame(d)
>>> d[d['one']<3]
one two
a 1.0 2.0
b 2.0 3.0

六、DataFrame的删除和添加一列

  添加一列:(1)像字典一样通过赋值的方式执行

 >>> d['three']=d['one']+d['two']

        (2)使用insert()在指定位置插入一列,例如在位置1插入新的一列'new',值为0

>>> d.insert(1,'new',np.zeros((4,1)))
>>> d
one new two three
a 1.0 0.0 2.0 3.0
b 2.0 0.0 3.0 5.0
c 3.0 0.0 NaN NaN
d NaN 0.0 4.0 NaN

  删除一列:像字典一样------>使用pop()或者del(),pop()可以在删除列的基础之上将删除的列赋值给一个新的变量

 >>> del d['three']
>>> d
one new two
a 1.0 0.0 2.0
b 2.0 0.0 3.0
c 3.0 0.0 NaN
d NaN 0.0 4.0
>>> new = d.pop('new')
>>> d
one two
a 1.0 2.0
b 2.0 3.0
c 3.0 NaN
d NaN 4.0
>>> new
a 0.0
b 0.0
c 0.0
d 0.0
Name: new, dtype: float64

六、DataFrame修改索引名:使用rename()方法

 >>> d
one two
a 1.0 2.0
b 2.0 3.0
c 3.0 NaN
d NaN 4.0
>>> i = {'a':'A','b':'B'}
>>> d.rename(index=i)
one two
A 1.0 2.0
B 2.0 3.0
c 3.0 NaN
d NaN 4.0

3-Pandas之Series和DataFrame区别的更多相关文章

  1. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  2. Python之Pandas中Series、DataFrame

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

  3. Python之Pandas中Series、DataFrame实践

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

  4. Pandas中Series和DataFrame的索引

    在对Series对象和DataFrame对象进行索引的时候要明确这么一个概念:是使用下标进行索引,还是使用关键字进行索引.比如list进行索引的时候使用的是下标,而dict索引的时候使用的是关键字. ...

  5. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  6. pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  7. pandas学习series和dataframe基础

    PANDAS 的使用 一.什么是pandas? 1.python Data Analysis Library 或pandas 是基于numpy的一种工具,该工具是为了解决数据分析人物而创建的. 2.p ...

  8. [Python] Pandas 中 Series 和 DataFrame 的用法笔记

    目录 1. Series对象 自定义元素的行标签 使用Series对象定义基于字典创建数据结构 2. DataFrame对象 自定义行标签和列标签 使用DataFrame对象可以基于字典创建数据结构 ...

  9. pandas中series和dataframe之间的区别

    series结构有索引,和列名组成,如果没有,那么程序会自动赋名为None series的索引名具有唯一性,索引可以数字和字符,系统会自动将他们转化为一个类型object. dataframe由索引和 ...

随机推荐

  1. JSTL版本问题

    JSTL的版本有很多,和Servlet,jsp,tomcat都有版本兼容的问题,以下是收藏的相关帖子 JSTL不同版本和EL表达式的关联  https://www.cnblogs.com/yangzh ...

  2. Plink v0.1.0 发布——基于Flink的流处理平台

    Plink是一个基于Flink的流处理平台,旨在基于 [Apache Flink]封装构建上层平台. 提供常见的作业管理功能.如作业的创建,删除,编辑,更新,保存,启动,停止,重启,管理,多作业模板配 ...

  3. css中 出现height为100%失效的原因及解决方案

    我们都知道需要给html和body标签设置了高度height:100%之后,再给内部的div设置height:100%的时候,内部div的高度100%才会起到作用.这是由于:%是一个相对父元素计算得来 ...

  4. TJOI2018 数学计算 题解

    题目 小豆现在有一个数 \(x\) ,初始值为 \(1\) . 小豆有 \(Q\) 次操作,操作有两种类型: \(m\): \(x=x×m\),输出 \(x\mod M\) : \(pos\): \( ...

  5. JAVA的8种基本数据类型分析

    基本数据类型(8个) 1.整数类型(4个)   字节个数 取值范围 byte(字节) 1(8位) -2^7~2^7-1 short(短整型) 2(16位) -2^15~2^15-1 int(整形) 4 ...

  6. Jmeter系列(40)- 详解 Jmeter CLI 模式

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 什么是 CLI 模式 CLI = Co ...

  7. BERT源码分析及使用方法

    本文原作者:梁源 BERT (Bidirectional Encoder Representations from Transformers) 官方代码库 包含了BERT的实现代码与使用BERT进行文 ...

  8. BFC原理解析

    BFC的概念 块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域. 它是 ...

  9. 汉王JAVA笔试题

    汉王JAVA笔试题 1,jsp中动态include与静态include的区别? (1)动态包含总是会检查文件中的变化,适合用于包含动态页面,并且可以带参数. (2)静态包含不会检查所含文件的变化,适用 ...

  10. Java并发编程实践

    最近阅读了<Java并发编程实践>这本书,总结了一下几个相关的知识点. 线程安全 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任 ...