python数据分析(3)——pandas(带过程与结果)

Pandas

pandas是一个基于NumPy的模块,它的功能在于数据的筛选清洗和处理,与NumPy模块相比,pandas模块更擅长处理二维数据。

pandas模块主要有SeriesDataFrame两种数据结构。

安装:在终端中输入代码:pip install pandas即可。

一、series数据结构

1)series的概念

Series,中文叫做序列,pandas模块的一种数据类型。是一个一维的、带索引(index)的数组对象。

在这里插入图片描述
右侧是一个print出来的Series,它由3部分构成。左侧是索引(index),右侧是值(values),下面是值(values)的数据类型。

一个索引对应一个值。索引和值之间,有空格隔开。

2)series和字典的相同和差异点

Series 和字典有一定的相似之处

  1. 一个字典中,通过键(key),可以访问所对应的值(value)。
  2. Series也是如此,一个Series的索引(index)在左边,值(values)在右边,可以通过左边的索引index访问到右边对应的值values。

Series 和字典有一定的差异点

  1. Series中的数据是有顺序的。除了直接通过index访问外,还能通过0,1,2这样的位置进行访问。
  2. Series的index是可以定义的。如果没有定义index,index就会默认从0开始生成。

3)series的值的类型

Series的值(values)可以是多种数据类型:字符串、整型、浮点型、布尔型。

一个Series在print输出时,值的数据类型会在底部,用dtype标示出来。

需要注意的是,一个Series里的所有值,数据类型都是一样的。

二、series的构造函数

import pandas as pd

GDP = [80855, 77388, 68024, 47251, 40471]
city = ['GD','JS','SD','ZJ','HN']

info = pd.Series(GDP,index = city)
#参数index用于定义Series的索引(index)。
print(info)

结果

GD    80855
JS    77388
SD    68024
ZJ    47251
HN    40471
dtype: int64
  • 值(values)是由列表GDP的值组成;
  • 索引(index)是由列表city的值组成;
  • 值(values)的数据类型是整型。

三、访问Series数据

1. 位置索引访问

这种访问方式和列表相同,是基于元素自身的下标来进行访问。对于一个列表list,list[i]表示list的第i+1个元素。

同理,我们通过这种方式就可以获得Series序列中的每个数据。示例中,我们通过info[0]输出了info的第一个数据。

import pandas as pd
info = pd.Series([80855, 77388, 68024, 47251, 40471],index = ['GD','JS','SD','ZJ','HN'])

结果

80855

2. 索引标签访问

这种访问方式和字典相同,把index中的索引标签当做字典的key,而把Series序列的值当做字典的value。

示例中,我们通过索引标签’JS’输出了info中对应的数据。

import pandas as pd
info = pd.Series([80855, 77388, 68024, 47251, 40471],index = ['GD','JS','SD','ZJ','HN'])

# 通过索引标签'JS'输出了info中对应的数据
print(info['JS'])

二、DataFrame

1、定义

DataFrame,中文叫数据框。是pandas模块最常用的数据类型,是一个二维的矩阵数据表

2、组成

右侧是一个DataFrame,它由3部分组成:

  • 既有行索引(index),可以用来定位到具体的某一行。
  • 也有列索引(columns),用来定位到具体的某一列。
  • 通过index和columns,可以定位到一个值,能快速进行数据的筛选和定位。
    t
    因此,DataFrame的同一列中,值的数据类型相同。但是,列和列之间的数据类型可以不同。

3、索引

同样的,和Series类似,DataFrame的行索引index是可以选择性定义的。如果没有定义index,index就会默认从0开始生成。

4、构造函数

通过调用的pandas模块里的***DataFrame()***函数,可以构造一个DataFrame。

1)用字典的方法

import pandas as pd 

data= {'rank':[1, 2, 3, 4],'GDP':[80855, 77388, 68024, 47251]}
city= ['GD','JS','SD','ZJ']

df= pd.DataFrame(data, index=city)

print(df)

结构

  rank    GDP
GD     1  80855
JS     2  77388
SD     3  68024
ZJ     4  47251
  • 示例中data是一个字典,传入pd.DataFrame()函数;
  • 字典的keys,会成为DataFrame的列索引columns;
  • 字典的values是列表,列表中的值,会成为DataFrame的值values。
  • 字典的values是对应的列表,并且每个列表中的元素个数相同。在这里插入图片描述

2、用列表的方法

  • 此时,参数data是嵌套列表,没有自定义columns。生成的DataFrame的columns会默认从0开始生成。
  • 也就是说,参数data传入的是列表时,需要在pd.DataFrame()函数内使用参数columns,用于自定义列索引columns。

5、DataFrame属性

  1. dtypes
    我们访问DataFrame对象的的dtypes属性,会返回DataFrame对象每一列的数据类型。

  2. values
    我们访问DataFrame对象的values属性,会以数组的形式返回DataFrame对象的值values。

  3. index
    同理,我们访问DataFrame的index属性,可以获取它的行索引index。

6、DataFrame的轴

轴(axis),是用来为超过一维的数组定义属性。二维数组有两个轴,三维数组有三个轴,以此类推。

对于DataFrame而言:
第0轴垂直向下,即axis=0是垂直方向进行操作;
第1轴水平向右,即axis=1是水平方向进行操作。
在这里插入图片描述
如果要按行或者按列来对DataFrame内的数据进行求和,可以使用sum()函数。

那么在sum()函数中,就可以使用axis参数来指定求和的方向。

右侧展示了:
当axis=0时,是在垂直的方向上进行求和操作;
当axis=1时,是在水平的方向上进行求和操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值