Pandas
Pandas |
一、概述
Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
安装方法:
pip install pandas
引用方法:
import pandas as pd
二、Series
Series是一个一维数组对象 ,类似于 NumPy 的一维 array。它除了包含一组数据还包含一组索引,所以可以把它理解为一组带索引的数组。
1.创建Series对象
创建方法如下:
对于Series而言,其实我们可以认为它是一种长度固定而且有序的字典,因为它的索引和数据是按位置进行匹配的。
2.缺失值处理
对于一些缺失的数据我们有一些处理方法,分别是:
方法 | 描述 |
dropna() | 过滤掉值为NaN的行 |
isnull() | 返回布尔数组,缺失值为True |
notnull() | 返回布尔数组,缺失值为False |
下面我们用实例来产生一个缺失值:
通过上面代码演示,因为liuliu没有出现在dic的键中,所有返回的是缺失值,然后我们利用上面的代码对缺失值进行处理,采用上面的方法:
3.属性
属性 | 描述 |
values | 以数组方式获取Series的元素值 |
index | 以数组方式获取Series的元素索引 |
name | 获取values的name(需额外指定) |
index,name | 获取index的name(需额外指定) |
dtype | 获取Series数据类型 |
array | 以数组方式获取Series的值,与values的区别在于array返回的是PandasArray()数据结构 |
4.运算
(1)乘法运算
(2)加法运算
(3)索引
(4)切片
5.方法
(1)loc与iloc
iloc以下标获取值,loc以索引获取值
(2)copy
copy分为深拷贝和浅拷贝。
深拷贝创建一个新对象,对series进行复制。
浅拷贝创建一个新对象,但不复制原series的数据,也不复制其索引,仅对索引与数据指向原数据。
(3)reindex
reindex()会创建一个新的对象,用以适应新的索引,并不会修改源对象。
三、DataFrame
DataFrame是一种表格型数据结构,它含有一组有序的列,每列可以是不同的值。DataFrame既有行索引,也有列索引,它可以看作是由Series组成的字典,不过这些Series共用一个索引。
1.创建DataFrame对象
2.属性
属性 | 描述 |
index | 获取行索引 |
columns | 获取列索引 |
T | 转置 |
values | 获取值索引 |
3.运算
(1)乘法运算
(2)加法运算
(3)索引
(4)切片
4.方法
方法 | 描述 |
head() | 用于查看数据集的前5行 |
info() | 用于查看数据的描述 |
value_counts() | 用于查看某一列中的类型以及对应数量 |
describe() | 用于查看数值属性的概括(count、min、max等) |
四、Pandas方法
1.数据导入
pd.read_csv(filename):从CSV文件导入数据
pd.read_table(filename):从限定分隔符的文本文件导入数据
pd.read_excel(filename):从Excel文件导入数据
pd.read_sql(query, connection_object):从SQL表/库导入数据
pd.read_json(json_string):从JSON格式的字符串导入数据
pd.read_html(url):解析URL、字符串或者HTML文件
pd.read_clipboard():从粘贴板获取内容
pd.DataFrame(dict):从字典对象导入数据
2.数据导出
df.to_csv(filename):导出数据到CSV文件
df.to_excel(filename):导出数据到Excel文件
df.to_sql(table_name, connection_object):导出数据到SQL表
df.to_json(filename):以Json格式导出数据到文本文件
3.数据查看
df.head(n):查看DataFrame对象的前n行
df.tail(n):查看DataFrame对象的最后n行
df.shape():查看行数和列数
df.info():查看索引、数据类型和内存信息
df.describe():查看数值型列的汇总统计
s.value_counts(dropna=False):查看Series对象的唯一值和计数
df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数
df.values.tolist()获得值