pandas 是基于numpy构件的强大的数据处理模块,其核心的数据结构有两个:Series 与 DataFrame

一:Series

  Series 是一种类似于表的东西,拥有索引(index)与其对应的值(value)

  1)创建Series:

    Sereies方法接收两个参数,第一个与value相关,第二个用来指定索引。而创建的方式有两种:

    一种为用两个list作为参数分别代表value和index的值[index参数不写则默认0开始自增长]

    另一种为dict作为第一参数,若不写第二参数,则其key变成index,value即是value,若有第二参数,则用第二参数元素作为index.[index对应不上的则被抛弃]

    import pandas as pd

 obj_1 = pd.Series([1,2,3,4])    #若不指定索引则默认为从零开始的自增长

     --->obj_1
      0 1
      1 2
      2 3
      3 4
      dtype: int64     obj_2 = pd.Series([1,2,3,4], index=['a','b','c','d'])  #指定索引     obj_2
    --->a 1
      b 2
      c 3
      d 4
      dtype: int64

创建方法一

     sdata = {'Ohio':3500,'Texas':7100,'Oregon':1600,'Utah':500}

     obj_3 = pd.Series(sdata)

     obj_3
    --->Ohio 3500
      Oregon 1600
      Texas 7100
      Utah 500
      dtype: int64          states = ['California','Ohio','Texas']     obj_4 = pd.Series(sdata,index=states)     obj_4
    --->California NaN
      Ohio 3500
      Texas 7100 #由于states列表并没有Oregen与Utah,故无法对应起来
      dtype: float64

创建方法二

  2) 索引

    obj_1.values     #调出所有元素值
    --->array([1, 2, 3, 4], dtype=int64)

    obj_1.index     #调出索引值
    --->Int64Index([0, 1, 2, 3], dtype='int64')

    #改变index值

    obj_4.index = ['bob','steve','jeff']    #注:若要改变index,数量必须与原本的数量相同,不能少也不能多

    obj_4
  
      bob NaN
      steve 3500
      jeff 7100
      dtype: float64

    obj_2['a']      #利用索引进行取值
    --->1

    obj_2[['c','b','a']]        #可以用索引一次取多个值,并且按其给定的顺序输出
    --->c 3
      b 2
      a 1
      dtype: int64

    'b' in obj_2      #检验索引是否存在
    --->True

二:DataFrame

  一种表格型的数据结构,每列可以是不同的数值类型,且它既有行索引,还有列索引,并且他们是平衡的

  1)创建DataFrame

    DataFram(data[,columns = ... , index = ...])

    注:若data为字典型数据,则keys自动变成columns,若data仅是列表类,columns与index都是默认0开始自增长的数

    

 data=[['ohio','nevada','nevada'],[2000,1000,1000],[1.5,1.7,3.6]]

     frame_1 = pd.DataFrame(data)

     frame_1
    0 1 2
      0 ohio nevada nevada
      1 2000 1000 1000
      2 1.5 1.7 3.6     frame_2 = pd.DataFrame(data,columns=['first','second','third'])     frame_2
     first second third #注意此处结果与使用字典时比较,这里一个list定义了一行,而字典的是一列
    0 ohio nevada nevada
    1 2000 1000 1000
    2 1.5 1.7 3.6         frame_2 = pd.DataFrame(data,columns=['first','second','third'],index=['one','two','three'])     frame_2
       first second third
    one ohio nevada nevada
    two 2000 1000 1000
    three 1.5 1.7 3.6

创建方法一

             data2 = {'states':['ohio','nevada','nevada'],'year':[2000,1000,1000],'pop':[1.5,1.7,3.6]}

     frame_4=pd.DataFrame(data2)

     frame_4
      pop states year
    0 1.5 ohio 2000
    1 1.7 nevada 1000
    2 3.6 nevada 1000     frame_5=pd.DataFrame(data2,index=['one','two','three'])     frame_5
      pop states year
    one 1.5 ohio 2000
    two 1.7 nevada 1000
    three 3.6 nevada 1000     

创建方法二

  2)索引

    同Series一样可以通过values与index属性查看这两个值

 In [62]: frame_4
Out[62]:
pop states year
0 1.2 ohio 2000
1 2.1 new state new year
2 3.6 nevada 1000 In [63]: frame_4.index
Out[63]: Int64Index([0, 1, 2], dtype='int64') In [64]: frame_4.index.name In [65]: frame_4.index
Out[65]: Int64Index([0, 1, 2], dtype='int64') In [66]: frame_4.values
Out[66]:
array([[1.2, 'ohio', 2000L],
[2.1, 'new state', 'new year'],
[3.6, 'nevada', 1000L]], dtype=object)

index/values属性

    通过对column的索引可以获取以Series的形式返回一列

 In [38]: frame_4
Out[38]:
pop states year
0 1.5 ohio 2000
1 1.7 nevada 1000
2 3.6 nevada 1000 In [39]: frame_4['pop']
Out[39]:
0 1.5
1 1.7
2 3.6
Name: pop, dtype: float64

    通过索引字段ix可以以Series形式返回一行的内容【实际上ix关键字可以实现两个方向上的选取,其接收两个参数,第一个取行,第二个取列,返回并集】

 In [40]: frame_4.ix[1]
Out[40]:
pop 1.7
states nevada
year 1000
Name: 1, dtype: object

 In [8]: frame_4.ix[1,:1]
 Out[8]:
 pop 1.7
 Name: 1, dtype: object

  3)赋值

    列赋值

 In [41]: frame_4['pop']=2.0

 In [42]: frame_4
Out[42]:
pop states year
0 2 ohio 2000
1 2 nevada 1000
2 2 nevada 1000

    行赋值

 In [44]: frame_4
Out[44]:
pop states year
0 2 ohio 2000
1 hello hello hello
2 2 nevada 1000

    通过Series进行赋值

 In [45]: val = pd.Series([1.2,2.0,3.6],index=[0,1,2])

 In [46]: frame_4['pop']=val

 In [47]: frame_4
Out[47]:
pop states year
0 1.2 ohio 2000
1 2.0 hello hello
2 3.6 nevada 1000
 In [48]: val_2 = pd.Series([2.1,'new state','new year'],index=['pop','states','y
ear'])
In [49]: frame_4.ix[1]=val_2 In [50]: frame_4
Out[50]:
pop states year
0 1.2 ohio 2000
1 2.1 new state new year
2 3.6 nevada 1000

    增与删

 In [52]: frame_4['stars']=['one','two','five']     #没有则直接新建

 In [53]: frame_4
Out[53]:
pop states year stars
0 1.2 ohio 2000 one
1 2.1 new state new year two
2 3.6 nevada 1000 five In [54]: del frame_4['stars'] In [55]: frame_4
Out[55]:
pop states year
0 1.2 ohio 2000
1 2.1 new state new year
2 3.6 nevada 1000

  4)转置:.T          [只是返回一个转置的副本,本身并不转置]

 In [56]: frame_4
Out[56]:
pop states year
0 1.2 ohio 2000
1 2.1 new state new year
2 3.6 nevada 1000 In [57]: frame_4.T
Out[57]:
0 1 2
pop 1.2 2.1 3.6
states ohio new state nevada
year 2000 new year 1000

.T

3.0:pandas【基础操作】的更多相关文章

  1. pandas 基础操作 更新

    创建一个Series,同时让pandas自动生成索引列 创建一个DataFrame数据框 查看数据 数据的简单统计 数据的排序 选择数据(类似于数据库中sql语句) 另外可以使用标签来选择 通过位置获 ...

  2. Axure8.0入门级基础操作到高手产品经理

    宅男下载了一个Axure8.0.从来没有用过,那就从最基础的了解一下呗. 1.添加元件,选择元件设置样式(右侧对话框中)略!!!!! 2.按住ctrl键,用鼠标点选元件,可以任意旋转3.点元件上的黑圆 ...

  3. pandas基础操作

    ```python import pandas as pd import numpy as np ``` ```python s = pd.Series([1,3,6,np.nan,44,1]) s ...

  4. 【代码笔记】Java常识性基础补充(二)——数组、ArrayList集合、ASCII编码、 eclipse基础操作、eclipse调试、eclipse项目导入、eclipse快捷键

    1.0 如何定义数组以及访问数组中的元素,如下所示.ArrayDemo01.java public class ArrayDemo01 { public static void main(String ...

  5. Pandas的基础操作(一)——矩阵表的创建及其属性

    Pandas的基础操作(一)——矩阵表的创建及其属性 (注:记得在文件开头导入import numpy as np以及import pandas as pd) import pandas as pd ...

  6. 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

    在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...

  7. 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  8. Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

    前言 安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可,安装前需保证Hadoop已启(动文中用到了hadoop的hdfs命 ...

  9. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

  10. numpy&pandas基础

    numpy基础 import numpy as np 定义array In [156]: np.ones(3) Out[156]: array([1., 1., 1.]) In [157]: np.o ...

随机推荐

  1. Knockoutjs官网翻译系列(二) Observable 数组

    承接前文,前文书说道了KO框架中如何使用observable的视图模型属性来与UI元素进行绑定并自动进行双向更新的事儿.observable属性除了服务基础数据类型之外,还定义了专门为服务数组类型的o ...

  2. 利用 Makefile 写的小程序

    1.建立一个工程 2.写一个进度条的程序(原理就是在同一位置重复打印某一个字符(变化),达到动态显示的效果) 所以说我们这里只用回车'\r',覆盖这一行以前的输出,重新向缓冲区写数据刷新缓冲区,就能达 ...

  3. linux thread 互斥锁

    #include <stdio.h> #include <stdlib.h> #include <pthread.h> void *threadhandle(voi ...

  4. Yum 安装 zabbix...

    环境:centos6_64 Mysql环境.禁用iptable selinux 安装基础包: 需要安装LAMP.自己安装吧...不会的请移步...LAMP rpm -ivh http://repo.z ...

  5. 使用 phpMyAdmin无法登录mysql的问题

    今天使用使用phpmyadmin时出现了以下错误: (1)第一次时: 当配置文件config.inc.php里的配置项是: $cfg['Servers'][$i]['host'] = 'localho ...

  6. lnmp下安装ffmpeg和ffmpeg-php教程

    现在我将我的过程方法发布出来. 以下都是用SSH命令 一.安装ffmpeg 操作系统:centos6 安装ffmpeg有两种方式:①.用源码包安装,这个不知道怎么回事老是报错②用yum命令安装,cen ...

  7. Razor视图引擎

    在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. (1)Razor文件类型: ...

  8. python: list[-1] 与 list[-1:] 的区别

    >>> l '3.542485\t1.977398\t-1\r\n' >>> l.split() ['3.542485', '1.977398', '-1'] &g ...

  9. Swagger 生成 ASP.NET Web API

    使用 Swagger 生成 ASP.NET Web API 在线帮助测试文档 原文:ASP.NET Web API Help Pages using Swagger作者:Shayne Boyer翻译: ...

  10. 自写 jQuery 大幅弹窗广告插件(不喜勿拍)

    最近写了做的两个项目都要做几乎同一件事,在首页弹出一个广告.本来是想在网上找一个的,找了几个,花了时间但都不怎么满意,尼玛呀,坑爹呀…… 最后一想,干脆自己动手了. 第一次写,在网上找一些例子来看. ...