一、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. 2020年全新web前端学习路线图,学完就业20K!

    第一阶段:HTML5+css 配套学习视频: 前端小白零基础入门HTML5+CSS3 第二阶段:移动web网页开发 移动web进阶教程 第三阶段:JavaScript网页编程 前端与移动开发基础入门到 ...

  2. JavaScript之原型模式

    JavaScript中有这样的一个概念,对象. 有不少人觉得Java这么语言才是面向对象的语言,JavaScript哪里面向对象了. 其实说JavaScript面向对象还不如说JavaScript基于 ...

  3. 大场前端工程师常使用CSS3特性做跨域也是牛逼前端的开始之路

    通过 CSS3 的 content 获取内容,很有意思的一个思路,实际场景中有可能用的到: CSST (CSS Text Transformation) 利用js动态创建一个link插入到文档中, 请 ...

  4. (三)ELK logstash input

    一,input模块 input 插件官方详解: https://www.elastic.co/guide/en/logstash/current/input-plugins.html Logstash ...

  5. POJ 3057 Evacuation 题解

    题目 Fires can be disastrous, especially when a fire breaks out in a room that is completely filled wi ...

  6. 解决idea中“系统找不到指定路径”的问题

    有时在其他工具中运行正确的项目,在idea中运行会报路径找不到的错误. 该路径是相对路径的情况下,很有可能是因为idea中的工作空间没有选择正确而导致的.设置工作空间: 该目录没有配置到你运行的模块, ...

  7. day07 流程控制

    灵魂三问: 什么是?为什么要有?怎么用? 目录 一 分支结构 1.1 什么是分支结构 1.2 为什么要有分支结构 1.3 怎么用分支结构 1.3.1 if语法 二 循环结构 2.1while循环 一 ...

  8. 04 drf源码剖析之版本

    04 drf源码剖析之版本 目录 04 drf源码剖析之版本 1. 版本简述 2. 版本使用 3.源码剖析 4. 总结 1. 版本简述 API版本控制使您可以更改不同客户端之间的行为.REST框架提供 ...

  9. bzoj4459[Jsoi2013]丢番图

    bzoj4459[Jsoi2013]丢番图 题意: 丢番图方程:1/x+1/y=1/n(x,y,n∈N+) ,给定n,求出关于n的丢番图方程有多少组解.n≤10^14. 题解: 通分得yn+xn=xy ...

  10. HTTP版本比较

    HTTP2.0优势 1.采用二进制格式传输数据,而非http1.1文本格式,二进制格式在协议的解析和优化扩展上带来了跟多的优势和可能 2.对消息头采用Hpack进行压缩传输,能够节省消息头占用的网络流 ...