数据分析与知识发现
    主页 > 综合新闻 >

Python数据分析之简单学习pandas框架

Pandas 是python的一个数据分析包,专为解决数据分析任务而创建。 Pandas 包含了大量的库和一些标准数据模型,并提供了高效操作大型数据集所需的工具。 pandas 提供了大量的函数和方法,使我们能够快速方便地处理数据。您很快就会发现,它是使 Python 成为强大而高效的数据分析环境的重要因素之一。
1.数据结构介绍
pandas中有两个非常重要的数据结构,分别是Series和DataFrame。 series类似于numpy中的一维数组,只不过它继承了一维数组可用的所有函数或方法,并且可以通过索引标签获取数据,并且还具有自动索引对齐; DataFrame 类似于 numpy 中的二维数组,numpy 数组的功能和方法也可以通用,它们还有其他灵活的应用。
1.创建序列
创建序列的方式主要有以下三种:
1)通过一维数组创建序列
import numpy as np,pandas如 pd
arr1 = (10)
arr1
type(arr1)
s1 = (arr1)
< div>s1
type(s1)
2) 通过字典创建序列
dic1 = {'a':10, 'b' :20,'c':30,'d':40,'e':50}
dic1
type(dic1)
s2 = ( dic1)
s2
type(s2)
3) 从DataFrame中的一行或一列创建一个序列
这部分内容我们后面会讲,因为下面就要开始创建DataFrame了。
2、DataFrame的创建
创建数据框的方式主要有以下三种:
1)通过二维数组创建数据框
div>
arr2 = np.array((12)).reshape(4,3)
arr2
type(arr2)
df1 = (arr2)
df1
type(df1)
2) 通过字典的方式创建数据框
以下两个字典用于创建数据框,一个是字典列表,另一个是嵌套字典。
dic2 = {'a':[1,2,3,4],'b':[5,6,7,8],
'c':[ 9,10,11,12],'d':[13,14,15,16]}
dic2
type(dic2)
df2 = (dic2)
df2
type(df2)
dic3 = {'one':{'a':1,'b':2, 'c':3,'d':4},
'two':{'a':5,'b':6,'c':7,'d':8},
'三':{'a':9,'b':10,'c':11,'d':12}}
dic3
< div>type(dic3)
df3 = (dic3)
df3
type(df3)
3) 通过数据框创建数据框的方法
df4 = df3[['one','three']]
df4
type(df4)
s3 = df3['one']
s3
type(s3)
二、数据索引索引
详解朋友你可能会发现一个现象,不管是序列还是数据框,对象的最左边总是有一个非原始数据对象。这是什么?是的,就是我们接下来要介绍的索引。
在我看来,序列或数据框的索引有两个主要用途。一种是通过索引值或索引标签获取目标数据,另一种是通过索引获取目标数据,可以进行序列或数据框的计算, 操作实现自动对齐,我们来看看在这两个函数的应用中。
1.通过索引值或索引标签获取数据
s4 = (np.array([1,1,2,3,5,8]))
s4
< div>如果不给序列一个指定的索引值,序列会自动生成一个从0开始的自增索引,可以通过索引查看序列的索引:
s4.index
现在我们为序列设置一个自定义索引值:
s4.index = [ 'a','b','c','d','e', 'f']
s4
序列有索引,可以使用索引值或Index标签进行数据采集:
s4[3]< /div>
s4['e']
s4[[1,3,5]]
s4[3]
s4[' e']
s4[[1,3,5]]
s4[3]
s4['e']
s4[[1,3,5]]
div>
s4[['a','b','d','f']]
s4[: 4]
s4['c': ]
s4['b':'e']
注意:如果你通过index标签,可以返回结束标签对应的值!在一维数组中,无法通过索引标签获取数据,这也是序列不同于一维数组的一方面。
3.使用pandas查询数据
这里的查询数据相当于R语言中的subset函数。可以选择原始数据的子集、指定行、指定列等。我们先导入一个学生数据集:
student = _csv('C:\\Users\\admin\\Desktop \\')
查询前5行或末尾5行数据
()
()
查询指定行
[[0,2,4,5,7]] #这里的ix索引标签函数必须是括号[]
查询指定列
student[['Name','Height','Weight']].head() #如果有多列,必须用双括号
也可以通过查询指定的列ix索引标签
[:,['Name','Height', 'Weight']].head()
查询指定的行和列
< div>[[0,2,4,5,7],['姓名','高度','体重']].head()