Python笔记:pandas之基础概念与Series、DataFrame的创建

pandas是什么

  一个使数据清洗和分析工作变得更快更简单的数据结构和操作工具。

  pandas是基于numpy数组构建的。

pandas的安装

pip install pandas

pandas的导入

import pandas as pd

from pandas import Series, DataFrame

pandas的数据结构

Series

Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签(即索引)组成。

Series的字符串表现形式为:索引在左边,值在右边。

如果没有为数据指定索引,Series会自动创建一个0到N-1(N为数据的长度)的整数型索引。

可以通过Series的index和values属性获取其数组表示形式和索引对象。

通过参数关键词index自定义索引,但长度要和数组的长度一致:

通过index方法修改索引:

通过索引的方式选取Series中的单个或一组值:

可以使用numpy函数或类似numpy的运算,而且会保留索引值的链接

还可以将Series看成是一个长度固定的有序字典,因为它是索引值到数据值的一个映射。

它可以用在许多原本需要字典参数的函数中。

如果数据被保存在一个Python字典中,也可以直接通过这个字典来创建Series,如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列),可以通过参数关键词index传入排好序的字典的键以改变顺序。

#以下三个方法可以检测缺失数据
pd.isnull(ser)
pd.notnull(ser)
ser.isnull()

对于许多应用而言,Series最重要的一个功能是,它会根据运算的索引标签自动对齐数据。

Series对象本身及其索引都有⼀个name属性,该属性跟pandas其他的关键功能关系⾮常密切:

DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。

DataFrame既有行索引也有列索引,它可以被看做是由Series组成的字典(共用同一个索引)。

DataFrame中的数据是以一个或多个二维块存放的(而不列表、字典或别的一维数据结构)。

创建DataFrame的方法有很多,最常用的一种是直接传入一个由等长列表或Numpy数组组成的字典:

结果DataFrame会自动加上索引,且全部列会被有序排列。

对于特别大的DataFrame,可以使用head方法选取前五行:

frame.head()

通过关键字参数指定列的顺序,如果传入的列在数据中找不到,就会在结果中产生缺失值:

通过类似字典标记的方式或属性的方式,可以将DataFrame的列获取为一个Series:

列的值可以通过赋值的方式进行修改:

将列表或数组赋值给某个列时,其长度必须与DataFrame的长度一致,如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值。

为不存在的列赋值会创建出新的列。

关键字del用于删除列:

del frame['address']

使用嵌套字典创建DataFrame,嵌套字典外层的键作为列,内层键则作为行索引:

使用方法T对DataFrame进行转置(交换行与列):

frame.T

DataFrame构造函数所能接受的各种数据:

  二维ndarray

  由数组、列表或元组组成的字典

  Numpy的结构化/记录数组

  由Series组成的字典

  由字典组成的字典

  字典或Series的列表

  由列表或元组组成的列表

  另一个DataFrame

  Numpy的MaskedArry

如果设置了DataFrame的index和columns的name属性,则这些信息也会被显示出来。

和Series一样,values属性也会以二维ndarray的形式返回DataFrame中的数据。

posted @ 2021-07-07 17:08  游虚子  阅读(608)  评论(0)    收藏  举报