pandas 索引去重_Pandas入门 (一)

本文介绍了Pandas,一个用于数据分析的Python库,强调其高性能和易用性。讲解了Pandas如何读取csv、txt、excel和MySQL数据,以及DataFrame和Series数据结构。详细阐述了数据查询的多种方法,如.loc、.iloc、.where和.query,并讨论了新增数据列、数据统计、缺失值处理、排序和字符串处理。最后提到了Pandas的索引优化,包括唯一索引、多维索引和时间类型索引对查询性能的影响。
摘要由CSDN通过智能技术生成

一、什么是Pandas?

一个开源的Python类库:用于数据分析、数据处理、数据可视化

●高性能

●容易使用的数据结构

●容易使用的数据分析工具

很方便和其它类库一起使用:

●numpy: 用于数学计算

●scikit-learn: 用于机器学习

二、Pandas数据读取

Pandas需要先读取表格类型的数据,然后进行分析

1.读取csv文件

import pandas as pd

file = "./xxx.csv" # 文件路径

rat = pd.read_csv(file) # 读取数据

rat.head() #查看前几行数据

rat.shape #查看数据形状(行数,列数)

rat.columns #查看列名

rat.index #查看索引列

rat.dtypes #查看每列的数据类型

2.读取txt文件,自己指定分隔符,列名

import pandas as pd

file = "./xxx.txt"

data = pd.read_csv(

file,

sep = "\t",

header = None,

names = ['a','b','c']

)

3.读取excel文件

import pandas as pd

file = "./xxx.xlsx"

data = pd.read_excel(file)

4.读取MySQL数据库

import pandas as pd

import pymysql

conn = pymysql.connect(

host = '127.0.0.1',

user = 'root',

password = '123'

database = 'test'

charset = 'utf8'

)

mysql_page = pd.read_sql("select * from data", con = conn)

mysql_page

三、Pandas数据结构

DataFrame:二维数据,整个表格,多行多列

DataFrame是一个表格型的数据结构

●每列可以是不同的值类型(数值、 字符串、布尔值等)

●既有行索引index,也有列索引columns

●可以被看做由Series组成的字典

根据多个字典序列创建dataframe

Series: 一维数据,一行或一列

1.创建一个Series

import pandas as pd

s = pd.Series([1,'a',5.2,7]) # 得到的s最左侧是索引,右侧是数据

s.index # 获取索引

s.values # 获取数据

2.创建一个带有标签索引的Series

s = pd.Series([1,'a',5.2,7],index = ['a','b','c','d'])

3.使用Python字典创建Series

sdata = {'A':3500,'B':7200,'C':1600,'D':5000}

s = pd.Series(sdata)

4.根据索引标签查询数据

从DataFrame中查询出Series

●如果只查询一行、一列,返回的是pd.Series

●如果查询多行、多列,返回的是pd.DataFrame

1.查询列

2.查询行

四、Pandas数据查询的五种方法

Pandas查询数据的几种方法

df.loc方法,根据行、列的标签值查询

df.iloc方法,根据行、列的数字位置查询

df.where方法

df.query方法

.loc既能查询,又能覆盖写入,强烈推荐!

Pandas使用df.Iloc查询数据的方法

使用单个label值查询数据

使用值列表批量查询

使用数值区间进行范围查询

使用条件表达式查询

调用函数查询

注意

●以上查询方法,既适用于行,也适用于列

●注意观察降维dataFrame>Series>值

数据导入

数据处理

数据查询

1.使用单个label值查询数据

行或者列,都可以只传入单个值,实现精确匹配

2.使用值列表批量查询

3.使用数值区间进行范围查询

4.使用条件表达式查询

5.调用函数查询

五、Pandas新增数据列

1.直接赋值法

2.df.apply方法

沿DataFrame的轴应用函数

传递给函数的对象是序列对象,其索引是DataFrame的索引(axis=0)或DataFrame的列(axis=1)。

3.df.assign方法

4.按条件选择分组分别赋值

六、Pandas数据统计函数

1.汇总类统计

2.唯一去重

3.相关系数和协方差

协方差:衡量同向反向程度,如果协方差为正,说明X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X, Y反向运动,协方差越小说明反向程度越高。

相关系数:衡量相似度程度,当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,当相关系数为-1时,说明两个变量变化的反向相似度最大

七、Pandas缺失值处理

Pandas使用这些函数处理缺失值:

●isnull和notnull:检测是否是空值,可用于df和Series

●dropna:丢弃、删除缺失值

■axis:删除行还是列,{0 or 'index', 1 or 'columns'}, default 0

■how:如果等于any则任何值为空都删除,如果等于all则所有值都为空才删除

■inplace:如果为True则修改当前df, 否则返回新的df

●fillna:填充空值

■value:用于填充的值,可以是单个值,或者字典(key是列名, value是值)

■method:等于fill使用前一个不为空的值填充forword fill;等于bfill使用后一个不为空的值填充backword fill

■axis:按行还是列填充,{0 or 'index', 1 or 'columns'}

■inplace:如果为True则修改当前df,否则返回新的df

源数据:

步骤1

步骤2

步骤3

步骤4

步骤5

步骤6

八、Pandas数据排序

Series的排序:

Series.sort_values(ascending=True, inplace=False)

参数说明: .

●ascending: 默认为True升序排序,为False降序排序

●inplace: 是否修改原始Series

DataFrame的排序:

DataFrame.sort_ values(by, ascending=True, inplace=False)

参数说明:

●by:字符串或者List,单列排序或者多列排序

●ascending: bool或者List, 升序还是降序,如果是list对应by的多列

●inplace: 是否修改原始DataFrame

九、Pandas字符串处理

Pandas的字符串处理:

使用方法:先获取Series的str属性,然后在属性上调用函数;

只能在字符串列上使用,不能数字列上使用; .

Dataframe.上没有str属性和处理方法

Series.str并不是Python原生字符串,而是自己的一套方法,不过大部分和原生str很相似;

十、Pandas索引

1.设置索引

2.使用index会提升查询性能

●如果index是唯一的,Pandas会使用哈希表优化,查询性能为O(1);

●如果index不是唯一的,但是有序,Pandas会使用二分查找算法,查询性能为O(logN);

●如果index是完全随机的,那么每次查询都要扫描全表,查询性能为O(N);

●Categoricallndex,基于分类数据的Index,提升性能;

●Multilndex, 多维索引,用于groupby多维聚合后结果等;

●Datetimelndex, 时间类型索引,强大的日期和时间的方法支持;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值