pandas数据处理

Posted glh-ty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas数据处理相关的知识,希望对你有一定的参考价值。

1、删除重复元素

使用duplicated()函数检测重复的行,返回元素为布尔类型的Series对象,每个元素对应一行,如果该行不是第一次出现,则元素为True。

- keep参数:指定保留哪一重复的行数据
- True 重复的行
  • 创建具有重复元素行的DataFrame
from pandas import Series,DataFrame
import numpy as np
import pandas as pd

#创建一个df
np.random.seed(10)
df = DataFrame(data=np.random.randint(0,100,size=(3,5)),index=[A,B,C],columns=[a,b,c,d,e])
df
# 

a    b    c    d    e
A    9    15    64    28    89
B    93    29    8    73    0
C    40    36    16    11    54

df.loc[B] = [22,22,22,22,22]
df.loc[C] = [22,22,22,22,22]
df
#

a    b    c    d    e
A    9    15    64    28    89
B    22    22    22    22    22
C    22    22    22    22    22
  • 使用duplicated查看所有重复元素行

技术分享图片

使用drop_duplicates()函数删除重复的行

  • drop_duplicates(keep=‘first/last‘/False)

技术分享图片

2. 映射:指定替换

1) replace()函数:替换元素

 

使用replace()函数,对values进行映射操作

Series替换操作

  • 单值替换
    • 普通替换
    • 字典替换(推荐)
  • 多值替换
    • 列表替换
    • 字典替换(推荐)
  • 参数
    • to_replace:被替换的元素

单值普通替换

技术分享图片

技术分享图片

eplace参数说明:

  • method:对指定的值使用相邻的值填充替换
  • limit:设定填充次数

DataFrame替换操作

  • 单值替换
    • 普通替换: 替换所有符合要求的元素:to_replace=15,value=‘e‘
    • 按列指定单值替换: to_replace={列标签:替换值} value=‘value‘
  • 多值替换
    • 列表替换: to_replace=[] value=[]
    • 字典替换(推荐) to_replace={to_replace:value,to_replace:value}

技术分享图片

技术分享图片

2) map()函数:新建一列 , map函数并不是df的方法,而是series的方法

  • map是Series的一个函数
  • map()可以映射新一列数据
  • map()中可以使用lambd表达式
  • map()中可以使用方法,可以是自定义的方法

    eg:map({to_replace:value})

  • 注意 map()中不能使用sum之类的函数,for循环
 

 技术分享图片

技术分享图片

注意:并不是任何形式的函数都可以作为map的参数。只有当一个函数具有一个参数且有返回值,那么该函数才可以作为map的参数。

3. 使用聚合操作对数据异常值检测和过滤

技术分享图片

技术分享图片

4. 排序

使用.take()函数排序

- take()函数接受一个索引列表,用数字表示,使得df根据列表中索引的顺序进行排序
- eg:df.take([1,3,4,2,5])

可以借助np.random.permutation()函数随机排序

技术分享图片

 

 

随机抽样

当DataFrame规模足够大时,直接使用np.random.permutation(x)函数,就配合take()函数实现随机抽样

5. 数据分类处理

数据聚合是数据处理的最后一步,通常是要使每一个数组生成一个单一的数值。

数据分类处理:

  • 分组:先把数据分为几组
  • 用函数处理:为不同组的数据应用不同的函数以转换数据
  • 合并:把不同组得到的结果合并起来

数据分类处理的核心:

 - groupby()函数
 - groups属性查看分组情况
 - eg: df.groupby(by=‘item‘).groups

分组

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

 

 

 

 

 

 

 

 

以上是关于pandas数据处理的主要内容,如果未能解决你的问题,请参考以下文章

python pandas multiindex片段

pandas 求两个时间差, 转化秒,判断时间差是否大于阈值

Python:用于元组的 Pandas DataFrame

超全超香,数据分析与数据挖掘最频繁使用代码合集来了

pandas 文本处理大全(附代码)

超级有用的9个PHP代码片段