百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

pandas:把python变成小型数据库,小型Excel等等,功能强大

toyiye 2024-09-08 09:54 3 浏览 0 评论

pandas全称及说明

没找到pandas缩写的定义,我自己猜了一个,应该八九不离十吧。Python ANalysis DAta tookitS. pandas是一个开源的遵循BSD license的库,支持高性能,易用的数据结构和数据分析工具。目前最新稳定版本是v0.22.0(2017.12.29)

安装方法

conda install pandas

或者pip install pandas

如果下载比较慢,可以考虑直接下载安装文件pandas-0.22.0-cp27-cp27mu-manylinux1_x86_64.whl

然后安装sudo pip install wheel 之后, sudo pip install pandas-0.22.0-cp27-cp27mu-manylinux1_x86_64.whl 即可安装完成。下面开始pandas之旅。

数据结构介绍

pandas中有两类非常重要的数据结构,即序列series和数据框dataFrame。series类似于numpy中的一维数组,特别之处在于它可以通过索引标签的方式获取数据,还具有索引的自动对齐功能;dataframe类似于numpy的二维数组,当更加灵活。

首先把下列三个库import进去,如果出现问题,请根据提示安装相应模块。例如python-tk等。

>>> import matplotlib.pyplot as plt

>>> import pandas as pd

>>> import numpy as np

先看series的创建和使用

>>> arr1=np.arange(10)

>>> arr1

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> type(arr1)

<type 'numpy.ndarray'>

>>> s1=pd.Series(arr1) #通过传入numpy的一维数组对象创建series

>>> s1 #series的索引自动从0开始。

0 0

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

dtype: int64

>>> type(s1)

<class 'pandas.core.series.Series'>

另外还可以通过字典的方式创建series

>>> dic1={'a':10,'b':20,'c':40}

>>> dic1

{'a': 10, 'c': 40, 'b': 20}

>>> type(dic1)

<type 'dict'>

>>> s2=pd.Series(dic1)

>>> s2 #从这里看series与字典更接近,都有索引。

a 10

b 20

c 40

dtype: int64

我们来看一下series的索引具体是什么

>>> s1.index

RangeIndex(start=0, stop=10, step=1)

>>> s2.index

Index([u'a', u'b', u'c'], dtype='object')

有了索引就可以通过索引访问数据了。

>>> s1[3]

3

>>> s2['b']

20

>>> s1[[1,3,5]]

1 1

3 3

5 5

dtype: int64

还有一种创建series的方法

>>> s5=pd.Series(np.array([10,15,20,30,55,80]),index=['a','b','c','d','e','f'])

>>> s5

a 10

b 15

c 20

d 30

e 55

f 80

dtype: int64

>>> s6=pd.Series(np.array([12,11,13,15,14,16]), index=['a','c','g','b','d','f'])

>>> s6

a 12

c 11

g 13

b 15

d 14

f 16

dtype: int64

此时s5和s6的索引不相同,把他们相加会出现什么情况呢?

>>> s5+s6 #结果就是索引值对应的数据相加,找不到对应的索引值的就返回NaN。

a 22.0

b 30.0

c 31.0

d 44.0

e NaN

f 96.0

g NaN

dtype: float64

series比较好理解,因为他是一维的。那么数据框呢?它有行索引和列索引。

>>> arr2=np.array(np.arange(12)).reshape(4,3)

>>> arr2

array([[ 0, 1, 2],

[ 3, 4, 5],

[ 6, 7, 8],

[ 9, 10, 11]])

>>> df2=pd.DataFrame(arr2)

>>> df2 #看df2的值时,一定要注意,最上面一行时列索引,最左边一列是行索引。

0 1 2

0 0 1 2

1 3 4 5

2 6 7 8

3 9 10 11

>>>

类似数据库操作的功能

pd.io.parsers.read_csv可以直接从csv文件中读出内容并组成一个DataFrame对象。我们假设有一个student.csv文件。

  1. student = pd.io.parsers.read_csv('student.csv')

查询数据的前5行或末尾5行

  1. student.head()

  2. student.tail()

查询指定的行

  1. student.ix[[0,2,4,5,7]] #这里的ix索引标签函数必须是中括号[]

查询指定的列

  1. student[['Name','Height','Weight']].head() #如果多个列的话,必须使用双重中括号

也可以通过ix索引标签查询指定的列

  1. student.ix[:,['Name','Height','Weight']].head()

查询指定的行和列

  1. student.ix[[0,2,4,5,7],['Name','Height','Weight']].head()

以上是从行或列的角度查询数据的子集,现在我们来看看如何通过布尔索引实现数据的子集查询。

查询所有女生的信息

  1. student[student['Sex']=='F']

查询出所有12岁以上的女生信息

  1. student[(student['Sex']=='F') & (student['Age']>12)]

查询出所有12岁以上的女生姓名、身高和体重

  1. student[(student['Sex']=='F') & (student['Age']>12)][['Name','Height','Weight']]

上面的查询逻辑其实非常的简单,需要注意的是,如果是多个条件的查询,必须在&(且)或者|(或)的两端条件用括号括起来。

大家体会一下,这些操作和数据库的操作是不是很类似?

强大的统计功能

另外pandas还提供了许多统计函数:

  1. d1.count() #非空元素计算

  2. d1.min() #最小值

  3. d1.max() #最大值

  4. d1.idxmin() #最小值的位置,类似于R中的which.min函数

  5. d1.idxmax() #最大值的位置,类似于R中的which.max函数

  6. d1.quantile(0.1) #10%分位数

  7. d1.sum() #求和

  8. d1.mean() #均值

  9. d1.median() #中位数

  10. d1.mode() #众数

  11. d1.var() #方差

  12. d1.std() #标准差

  13. d1.mad() #平均绝对偏差

  14. d1.skew() #偏度

  15. d1.kurt() #峰度

  16. d1.describe() #一次性输出多个描述性统计指标

在Excel中有一个非常强大的功能就是数据透视表,通过托拉拽的方式可以迅速的查看数据的聚合情况,这里的聚合可以是计数、求和、均值、标准差等。

pandas为我们提供了非常强大的函数pivot_table(),该函数就是实现数据透视表功能的。

pandas可以灵活的解决很多工作中的数据处理、统计分析等任务。更详细的介绍,请自行搜索pandas官方网站。

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码