python数据可视化基础教学5(Pandas的使用)

目录

一、Pandas简介

二、Series数结构

1.创建Series对象。

2.Series基本操作

三、DataFrame对象

1.创建DataFrame对象

a.从字典创建DataFrame

b.由列表组成的字典创建DataFrame

c.用二维数组和columns构建DataFrame

d.从二维ndarray创建DataFrame

2.访问DataFrame对象

a.对Series和DataFrame进行索引

b.使用loc()和iloc()函数按索引名或按下标值抽取指定行列的数据。

c.练习提升


一、Pandas简介

        Pandas(Python Data Analysis Library)是Python的一个数据分析包,是基于Numpy的一种工具,是为了解决数据分析任务而创建的。
        Pandas使用强大的数据结构提供高性能的数据操作和分析工具。模块提供了大量的能便捷处理数据的函数、方法和模型,还包括操作大型数据集的工具,从而能够高效分析数据。
        Pandas主要处理以下三种数据结构。

  1. Series:一维数组,与Numpy中一维的ndarray类似。数据结构更接近Python中的list列表,数据元素可以是不同的数据类型。

  2. DataFrame:二维数组结构。DataFrame可以理解成Series的容器,其中内部的每个元素都可以看作一个Series。在机器学习中常常能够用到它。
  3. Panel:三维数组结构,可以理解为DataFrame的容器,其内部的每个元素都可以看作一个DataFrame.
    这些数据结构都构建在Numpy数组的基础之上,运算速度都非常快。

二、Series数结构

Series 是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签(即索引)组成,数据可以是任何Numpy数据类型(整数、字符串、浮点数、Python对象等)。

1.创建Series对象。

import pandas as pd
x = pd.Series([1,2,5,7,9])
print(x)

2.Series基本操作

import pandas as pd

#1.使用列表创建,索引值为默认值
s1 = pd.Series([1,1,1,1,1])
print(s1)

#2.使用字典创建,索引值为字典的Key值
s2=pd.Series({'Longitude':39,'Latitude':116,'Temperature':23})
print(s2)
print('first value in s2:',s2['Longitude'])

#3.使用range()函数生成的迭代序列设置索引值
s3 = pd.Series([3.4,0.8,2.1,0.3,1.5],range(5,10))
print('First value in s3:',s3[5])

#访问Series数据对象
#可以通过赋值操作直接修改Series对象成员的值,还可以为多个对象成员批量修改数据。
#4.针对s2中的数据,将温度增加2℃,设置城市为Beijing
s2['city']='Beijing'
s2['Temperature'] +=2
s2

#5.按条件表达式筛选数据:找出s3中大于2的数据
s3[s3>2]

#6.添加对象成员:为s2添加一项湿度数据。
stiny=pd.Series({'humidity':84})
s4 = s2.append(stiny)
print(s2)
print(s4)             #看原Series与新Series的变化

#7.删除对象成员:删除重量数据
s2 = s2.drop("city")
s2                    #查看s2中city数据是否删除

三、DataFrame对象

        DataFrame是一个表格型的数据结构,包含一组有序数列。列索引(columns)对应表格的字段名,行索引(index)对应表格的行号,值(values)是一个二维数组。每列表示一个独立的属性,各个列的数类型(数值、字符串、布尔值等)可以不同。
        DataFrame既有行索引也有列索引,所以DataFrame也可以看成是Series的容器。

1.创建DataFrame对象

格式:DataFrame([data,index,columns,dtype,copy])

a.从字典创建DataFrame
import pandas as pd
dict1 = {'col1':[1,2,5,7],'col2':['a','b','c','d']}
df = pd.DataFrame(dict1)
df

b.由列表组成的字典创建DataFrame
lista = [1,2,5,7]
listb = ['a','b','c','d']
df = pd.DataFrame({'col1':lista,'col2':listb})
df

c.用二维数组和columns构建DataFrame
#从数组创建DataFrame
import pandas as pd
a = pd.DataFrame([[1,0.1,5],[2,0.5,6]],columns=['t1','t2','p1'],index=["x1","x2"])
a

d.从二维ndarray创建DataFrame
import numpy as np
import pandas as pd

a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = pd.DataFrame(a)
b

2.访问DataFrame对象

DataFrame的列可以通过索引进行访问,本质上来说,Series或DataFrame的索引是一个index对象,负责管理轴标签等。在构建Series和DataFrame时,所使用的数组或序列的标签会转化成索引对象。因此Series的索引不只是数字,也包括字符等。对DataFrame进行索引,可以获取其中的一个或多个列

a.对Series和DataFrame进行索引
#对Series和DataFrame进行索引
import numpy as np
import pandas as pd
ser = pd.Series(np.arange(4),index=['A','B','C','D'])
data = pd.DataFrame(np.arange(16).reshape(4,4),
                   index=['BJ','SH','GZ','SZ'],
                   columns = ['q','r','s','t'])


print("ser['C']:",ser["C"])
print("ser[2]:",ser[2])
print("data['q']:\n",data['q'])
print("data[['q','t']]:\n",data[['q','t']])

 创建的数据:

输出结果:

b.使用loc()和iloc()函数按索引名或按下标值抽取指定行列的数据。
#loc函数:通过行索引“index”中的具体值来取行数据(如取:“index”为“A”的行)
#iloc函数:通过行号来取行数据(如取第二行的数据)

mport numpy as np
import pandas as pd

data=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list("ABCD"))
print(data)

#练习 提取第一行 两种方法
print(data.iloc[0])
print(data.loc['a'])  #提取索引为a的行

#练习 提取第一列 两种方法
print(data.loc[:,["A"]])  #取"A"列所有行,多取几列的格式为data.loc[:,[A,B]]
print(data.iloc[:,[0]])   #取第0列所以行,多取几列的格式为data.iloc[:,[0,1]]

 输出结果:

c.练习提升

#练习1
print('==============loc()方法======================')
print(data.loc['SH':'GZ',['r','s']])
print("==============iloc()方法=====================")
print(data.iloc[1:3,[1,2]])         #注意这里不包含3

#练习2
print('==============loc()方法=======================')
print(data.loc['BJ':'GZ',['r','s']])
print("==============iloc()方法======================")
print(data.iloc[:3,[1,2]])          #这里不包含3

输出结果:

 好了,今天的分享就到这里了,感谢大家的支持,写作不易,希望大家可以给博主点个关注支持支持,你们的支持,就是博主继续写作下去的动力,感谢大家。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值