Python数据分析之pandas基础

来源:互联网 发布:js设置checkbox不可用 编辑:程序博客网 时间:2024/05/18 11:46

1、Series的创建

序列的创建主要有三种方式:

1)通过一维数组创建序列

import numpy as np, pandas as pdarr1 = np.arange(10)arr1type(arr1)s1 = pd.Series(arr1)s1type(s1)

2)通过字典的方式创建序列

dic1 = {'a':10,'b':20,'c':30,'d':40,'e':50}dic1type(dic1)s2 = pd.Series(dic1)s2type(s2)

3)通过DataFrame中的某一行或某一列创建序列

这部分内容我们放在后面讲,因为下面就开始将DataFrame的创建。

2、DataFrame的创建

数据框的创建主要有三种方式:

数据框的创建主要有三种方式:

arr2 = np.array(np.arange(12)).reshape(4,3)arr2type(arr2)df1 = pd.DataFrame(arr2)df1type(df1)

2)通过字典的方式创建数据框

以下以两种字典来创建数据框,一个是字典列表,一个是嵌套字典。

dic2 = {'a':[1,2,3,4],'b':[5,6,7,8],'c':[9,10,11,12],'d':[13,14,15,16]}dic2type(dic2)df2 = pd.DataFrame(dic2)df2type(df2)
dic3 = {'one':{'a':1,'b':2,'c':3,'d':4},'two':{'a':5,'b':6,'c':7,'d':8},'three':{'a':9,'b':10,'c':11,'d':12}}dic3type(dic3)df3 = pd.DataFrame(dic3)df3type(df3)

3)通过数据框的方式创建数据框

df4 = df3[['one','three']]df4type(df4)s3 = df3['one']s3type(s3)

2、数据索引index

细致的朋友可能会发现一个现象,不论是序列也好,还是数据框也好,对象的最左边总有一个非原始数据对象,这个是什么呢?不错,就是我们接下来要介绍的索引。
在我看来,序列或数据框的索引有两大用处,一个是通过索引值或索引标签获取目标数据,另一个是通过索引,可以使序列或数据框的计算、操作实现自动化对齐,下面我们就来看看这两个功能的应用。

1、通过索引值或索引标签获取数据

s4 = pd.Series(np.array([1,1,2,3,5,8]))s4

如果不给序列一个指定的索引值,则序列自动生成一个从0开始的自增索引。可以通过index查看序列的索引:

s4.index

现在我们为序列设定一个自定义的索引值:

s4.index = ['a','b','c','d','e','f']s4

序列有了索引,就可以通过索引值或索引标签进行数据的获取:

s4[3]s4['e']s4[[1,3,5]]s4[['a','b','d','f']]s4[:4]s4['c':]s4['b':'e']

2、自动化对齐

如果有两个序列,需要对这两个序列进行算术运算,这时索引的存在就体现的它的价值了—自动化对齐。

s5 = pd.Series(np.array([10,15,20,30,55,80]),index = ['a','b','c','d','e','f'])s5s6 = pd.Series(np.array([12,11,13,15,14,16]),index = ['a','c','g','b','d','f'])s6s5 + s6s5/s6

由于s5中没有对应的g索引,s6中没有对应的e索引,所以数据的运算会产生两个缺失值NaN。注意,这里的算术结果就实现了两个序列索引的自动对齐,而非简单的将两个序列加总或相除。对于数据框的对齐,不仅仅是行索引的自动对齐,同时也会自动对齐列索引(变量名)数据框中同样有索引,而且数据框是二维数组的推广,所以其不仅有行索引,而且还存在列索引

原创粉丝点击