Numpy,Pandas学习笔记(一)

最近在学习数据分析,对学的进行了些整理,方便以后查看。欢迎交流。

下面的代码用到的模块都事先做了导入:

import numpy as np

import pandas as pd

from pandas import Series,DataFrame

一、各对象的理解

Numpy创建的对象其实是一个多维的数组(ndarray),n(多),d(dim维度),array(数组)

Pandas创建的对象有Series和DataFrame:Series我把它理解为1darray(1维的数组);DataFrame其实就像一个表格一样

二、从区别中把握ndarray,Series,DataFrame这3种数据结构

(一)对象的创建

都可以以自己为对象

都可以以列表(list)的形式导入数据,但是区别是

data=[1,2,3,4,5,6]

data2=[[1,2,3,4,5,6],[2,3,4,5,6,7]]

data3={'one':1,'two':2,'three':3}

ndarray只能通过list(包括嵌套的list)创建:

arr=np.array(data); 

arr2=np.array(data2)

结果如图,arr1是一个1行6列的数组,arr2是2行6列的数组。

Numpy,Pandas学习笔记(一)_第1张图片

series可以通过list和dict两种类型的数据创建

创建的格式是Series=Series(data,index),若data是dict类型,index指定了后会按index的顺序按行排序,不存在的index会赋予Nan(缺失值)

obj=Series(data)

obj2=Series(data2) 注:用嵌套列表时,内层的列表整个都作为了一个元素

obj3=Series(data3) 用字典(dict)来导入时,字典的key成了Series的索引(index);字典的value成了Series的value


Numpy,Pandas学习笔记(一)_第2张图片

DataFrame也可以通过list和dict来创建(毕竟在同一个模块)

可以看成是由n个series对象组成,每个series作为一列,并且还有自己的名字(如果不指定,就和index一样从0开始依次命名,这每一列实际叫做column。

创建格式是frame=DataFrame(data,columns,index),其中colums,indexs是默认参数(默认从数字0开始生成),可以不指定。index:在没指定的情况下只是替换了原来默认的index,在指定index的情况下再设置index参数了相当于排序。colums同index。

1.在以列表数据导入时,DataFrame对象和Series对象类似

frame=DataFrame(data)

frame2=DataFrame(data2)

2.以字典传入数据时,key作为列序列,value作为这个序列的值(多个时以list表示)

data4={'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}

frame4=DataFrame(data4)

frame5=DataFrame(data4,columns=['c','b','a'])

frame6=DataFrame(data4,columns=['c','b','a'],index=['one','two','three'])

frame7=DataFrame(frame6,columns=['c','b','d'],index=['three','two'])

frame8=DataFrame(frame6,columns=['c','b','d'],index=['three','tw'])

3.还可以用嵌套字典,外层的key作为列,内层的key作为index

data5={'a':{'one':1,'two':4,'three':7},'b':{'one':2,'two':5,'three':8},'c':{'one':3,'two':6,'three':9}}

frame9=DataFrame(data5)

Numpy,Pandas学习笔记(一)_第3张图片
Numpy,Pandas学习笔记(一)_第4张图片
Numpy,Pandas学习笔记(一)_第5张图片

持续更新,2017.5.15

你可能感兴趣的:(Numpy,Pandas学习笔记(一))