python的去重以及数据合并的用法说明

目录
  • python去重及数据合并
    • drop_dupicates
    • merge
  • python去重脚本
  • 总结

python去重及数据合并

drop_dupicates

参数含义:

  • subset:即表示要去重指定参考的列
  • keep : {‘first’, ‘last’, False}, default ‘first’

inplace:boolean, default False, 直接在原来的数据上修改还是保留副本

data = pd.DataFrame({'id':[1,1,2],'value':[12,14,27]})

#第一个参数传入需要比对的列,在"id"列有相同的id,则进行去重
data.drop_duplicates(['id'],keep='last',inplace=True)

#我想比较"id"、"value"两列的值全部相同时则去重
data.drop_duplicates(['id','value'],keep='last',inplace=True)

#如果想直接比较数据中的全部列都相同时才能去除,则可以按照如下方法.keep默认的是保留第一个
data.drop_duplicates()

merge

首先关于连接,从SQL中的可以得知,连接主要分为外连接和内连接:

内连接

内连接是指在两个数据表中,根据其指定合并的列,找到其交集,也就是既在df1中出现,也在df2中出现的数据

df1=pd.DataFrame({'key':['b','b','a','c','a','a','b'],
                  'data':range(7)})
df2=pd.DataFrame({'key':['a','b','d'],
                  'data2':range(3)})
df = pd.merge(df1,df2,on='key',how='inner') #不写how也没关系,因为merge默认的就是内连接 

假设如果在df1和df2中的指定要合并的列的列名不一致的话,则需要显式指定根据哪一列进行合并

df3=pd.DataFrame({'key1':['b','b','a','c','a','a','b'],
                  'data':range(7)})
df4=pd.DataFrame({'key2':['a','b','d'],
                  'data2':range(3)})
df = pd.merge(df3,df4,left_on='key1',right_on='key2')
# 该结果比上面的on='key'的结果多一列相同的列,但是两个的本质是一样的,都是内连接

外连接

外连接可以分为三种,全外连接、左连接和右连接。

全外连接就是保留两个表中指定合并的列关键字的并集,然后在左右两个表中找到相对应的数据进行填充,没有的用NAN代替

df1=pd.DataFrame({'key':['b','b','a','c','a','a','b'],
                  'data':range(7)})
df2=pd.DataFrame({'key':['a','b','d'],
                  'data2':range(3)})

df = pd.merge(df1,df2,on='key',how='outer')

右连接是保留右表中指定列的所有关键字,然后去左表中找到指定列对应的数据进行补充,没有的就NAN代替

df = pd.merge(df1,df2,on='key',how='right')

左连接是保留左表中指定列的所有关键字,然后去右表中找到指定列对应的数据进行补充,没有的就NAN代替

df = pd.merge(df1,df2,on='key',how='left')

python去重脚本

可以用来去除字典、漏洞数量等

使用方法,将要去重的部分保存成为csv格式,并命名为all.csv,直接执行后,会在当前目录下生成qc.csv的文件!

#coding:utf-8

ciku=open(r'all.csv','r')   #打开需要去重文件
xieci=open(r'qc.csv','w')   #打开处理后存放的文件
cikus=ciku.readlines() 
list2 = {}.fromkeys(cikus).keys()     #列表去重方法,将列表数据当作字典的键写入字典,依据字典键不可重复的特性去重
i=1
for line in list2:
    if line[0]!=',':
        # print line[0:-1].decode('utf-8').encode('gbk')
        # print  u"writing"+i
        i+=1
        xieci.writelines(line)
xieci.close()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 序列去重并保持原始顺序操作

    目录 一.简单的方法实现 二.用 set 和 yield 实现 三.Python列表去重并保持顺序为什么使用yield? 一.简单的方法实现 def dedupe(items):     seen = []     for item in items:         if item not in seen:             seen.append(item)     return seen sequence = [1, 2, 3, 5, 2, 3, 4] print((dedupe(s

  • python列表去重的5种常见方法实例

    目录 前言 一.使用for循环实现列表去重 二.使用列表推导式去重 三.使用集合转换函数set()实现列表去重 四.使用新建字典方式实现列表去重 五.删除列表中存在重复的数据 附:Python 二维数组元素去重 np.unique()函数的使用 总结 前言 列表去重在python实际运用中,十分常见,也是最基础的重点知识. 以下总结了5种常见的列表去重方法 一.使用for循环实现列表去重 此方法去重后,原顺序保持不变. # for循环实现列表去重 list1 = ['a', 'b', 1, 3,

  • python Dataframe 合并与去重详情

    目录 1.合并 1.1 结构合并 1.1.1 concat函数 1.1.2 append函数 1.2 字段合并 2.去重 1.合并 1.1 结构合并 将两个结构相同的数据合并 1.1.1 concat函数 函数配置: concat([dataFrame1, dataFrame2,-], index_ingore=False) 参数说明:index_ingore=False(表示合并的索引不延续),index_ingore=True(表示合并的索引可延续) 实例: import pandas as

  • Python列表去重的几种方法整理

    请定义函数,将列表[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1]中的重复元素除去,写出至少3种方法. 方法一:利用集合去重 list_1=[10, 1, 2, 20, 10, 3, 2, 1, 15, 20, 44, 56, 3, 2, 1] def func1(list_1): return list(set(list_1)) print('去重后的列表:',func1(list_1)) 方法二:利用for循环 list_2 = [10

  • python的去重以及数据合并的用法说明

    目录 python去重及数据合并 drop_dupicates merge python去重脚本 总结 python去重及数据合并 drop_dupicates 参数含义: subset:即表示要去重指定参考的列 keep : {‘first’, ‘last’, False}, default ‘first’ inplace:boolean, default False, 直接在原来的数据上修改还是保留副本 data = pd.DataFrame({'id':[1,1,2],'value':[1

  • Python基础之pandas数据合并

    一.concat concat函数是在pandas底下的方法,可以将数据根据不同的轴作简单的融合 pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False) axis: 需要合并链接的轴,0是行,1是列join:连接的方式 inner,或者outer 二.相同字段的表首尾相接 #现将表构成l

  • Python Pandas数据合并pd.merge用法详解

    目录 前言 语法 参数 1.连接键 2.索引连接 3.多连接键 4.连接方法 5.连接指示 总结 前言 实现类似SQL的join操作,通过pd.merge()方法可以自由灵活地操作各种逻辑的数据连接.合并等操作 可以将两个DataFrame或Series合并,最终返回一个合并后的DataFrame 语法 pd.merge(left, right, how = 'inner', on = None, left_on = None, right_on = None, left_index = Fal

  • Python数据分析之 Pandas Dataframe合并和去重操作

    目录 一.之 Pandas Dataframe合并 二.去重操作 一.之 Pandas Dataframe合并 在数据分析中,避免不了要从多个数据集中取数据,那就避免不了要进行数据的合并,这篇文章就来介绍一下 Dataframe 对象的合并操作. Pandas 提供了merge()方法来进行合并操作,使用语法如下: pd.merge(left, right, how="inner", on=None, left_on=None, right_on=None, left_index=Fa

  • python 数据清洗之数据合并、转换、过滤、排序

    前面我们用pandas做了一些基本的操作,接下来进一步了解数据的操作, 数据清洗一直是数据分析中极为重要的一个环节. 数据合并 在pandas中可以通过merge对数据进行合并操作. import numpy as np import pandas as pd data1 = pd.DataFrame({'level':['a','b','c','d'], 'numeber':[1,3,5,7]}) data2=pd.DataFrame({'level':['a','b','c','e'], '

  • Python变量、数据类型、数据类型转换相关函数用法实例详解

    本文实例讲述了Python变量.数据类型.数据类型转换相关函数用法.分享给大家供大家参考,具体如下: python变量的使用不需要进行类型声明(类型名 变量名),给一个变量名赋什么值就是什么类型. 变量的赋值使用 = 说明:虽然python声明变量时没有一个类型来圈注,但它并不是弱类型语言,相反,它是一门强类型语言. 弱类型的语言的东西没有明显的类型,它能随着环境的不同自动变换类型: 而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作 为什么说 Python 是强类型

  • python向xls写入数据(包括合并,边框,对齐,列宽)

    1.常规写入 # -*- encoding=utf-8 -*- import xlwt if __name__ == '__main__': head = ['姓名', '年龄', '出生年月'] data = [ ['盖伦', '20', '2012-02-04'], ['赵信', '18', '2013-05-12'], ['女枪', '18', '2015-12-12'], ['剑圣', '20', '2012-11-14'], ] workbook = xlwt.Workbook() #

  • 一文搞懂Python中Pandas数据合并

    目录 1.concat() 主要参数 示例 2.merge() 参数 示例 3.append() 参数 示例 4.join() 示例 数据合并是数据处理过程中的必经环节,pandas作为数据分析的利器,提供了四种常用的数据合并方式,让我们看看如何使用这些方法吧! 1.concat() concat() 可用于两个及多个 DataFrame 间行/列方向进行内联或外联拼接操作,默认对行(沿 y 轴)取并集. 使用方式 pd.concat( objs: Union[Iterable[~FrameOr

  • Python遍历目录下文件、读取、千万条数据合并详情

    目录 一.使用Python进行文件和文件夹的判断 二.使用Python完整的获取所有文件及文件夹并读取相应的文件 三.使用Python合并数据 append的使用 一.使用Python进行文件和文件夹的判断 递归 :主要目的就是遍历文件夹和文件 对文件夹和文件进行属性判断 首先对文件夹进行遍历,看文件夹里有什么样的文件,读取出文件夹中的所有文件 import os path= "./data" #路径 files = os.listdir(path) #os.listdir() 方法用

  • Python Pandas学习之数据离散化与合并详解

    目录 1数据离散化 1.1为什么要离散化 1.2什么是数据的离散化 1.3举例股票的涨跌幅离散化 2数据合并 2.1pd.concat实现数据合并 2.2pd.merge 1 数据离散化 1.1 为什么要离散化 连续属性离散化的目的是为了简化数据结构,数据离散化技术可以用来减少给定连续属性值的个数.离散化方法经常作为数据挖掘的工具. 1.2 什么是数据的离散化 连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值. 离散化有

随机推荐