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. swing——JFrame基本操作

    用JFrame(String String1)创建一个窗口 public void setBounds(int a,int b,int width,int height)设置窗口初始化的位置(a,b) ...

  2. An FPS counter.

    本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/Unity_FPFCounter.html using UnityEngine; u ...

  3. SQL中删除同一字段中重复的值

    /////////////////////目地:ZDJZ_DIS中 name字段有重复的值,删除重复的值 DELETE * FROM ZDJZ_DIS WHERE NAME IN (select NA ...

  4. IBM X3650 服务器更换内存的过程记录

    前几天,由于天气气温太高,导致中心机房UPS自动保护性关闭,最终导致所有服务器都掉电.其中一台IBM X3650服务器报警,显示内存故障.原来这台服务器共有4G内存,现在打开服务器进入系统后,显示只有 ...

  5. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. (关于jdbc)

    The last packet sent successfully to the server was milliseconds ago. The driver has not received an ...

  6. 文成小盆友python-num17 - django基础

    一.首先了解web应用的本质 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 下面利用socket实现一个简单的web框架: #!/usr/b ...

  7. string string.h=cstring=str

    <string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring> 在C++标准化(1998年 ...

  8. c#使用UIA进行模拟点击操作

    之前,我写过一篇c#使用spy进行模拟操作的文章,有朋友在留言中提到了UIA进行操作,今天也使用UIA重新实现一次对vnc窗体的控制测试. 实现目标 在server框内填入192.168.2.200 ...

  9. MCS-51单片机的指令时序

    时序是用定时单位来描述的,MCS-51的时序单位有四个,它们分别是节拍.状态.机器周期和指令周期,接下来我们分别加以说明. 节拍与状态:    我们把振荡脉冲的周期定义为节拍(为方便描述,用P表示), ...

  10. MCS-51系列和80C51系列单片机是否相同

    MCS是Intel公司单片机的系列符号.Intel推出有MCS-48.MCS-51.MCS-96系列单片机. MCS-51系列单既包括三个基本型80C31.8051.8751,以及对应的低功耗型号80 ...