xml地图|网站地图|网站标签 [设为首页] [加入收藏]
文件操作,Pandas数据去重和对重复数据分类
分类:编程

Python基础

引言

 

一、基础

  本来计划每周完成一篇Python的自学博客,由于上一篇到这一篇遇到了过年、开学等杂事,导致托更到现在。现在又是一个新的学期,春天也越来越近了(冷到感冒)。好了,闲话就说这么多。开始本周的自学Python之路。而且,同时从这周开始,也要开始自学Tensorflow。希望能严格要求自己,不会托更。加油啦。


  1.第一句python

正文

人的理想志向往往和他的能力成正比。 —— 约翰逊

    -后缀名是可以任意的

  这个周主要学习了集合,文件的操作,以及一点函数中的知识。下面将会详细介绍各个内容。


    -导入模块时,如果不是.py文件,会出现异常

集合

 

    -以后文件后缀名必须是.py

  集合也是Python的一种变量类型。它与列表不同,集合中没有顺序,没有重复。通常定义一个集合可以用以下两种方法。例子:

其实整个需求呢,就是题目。2018-08-16

 

#直接写出集合中的各个元素
list = set([2,1,10,15,18])

#将列表转换为集合,会去掉重复的值
list = [1,5,8,2,4,3,6,1,3]
list = set(list)

需求的结构图:

  2.两种执行方式

  对集合的编辑首先从添加开始,向集合中添加一个或多个元素的方法,例子:

图片 1

    -python解释器 py文件路径

list = set([2,1,10,15,18])#建立集合

list.add(99)#添加一项
list.update([99,100,101])#添加多项

 

    -python #进入解释器

  说完了添加,下面将会带来几种删除的方法,例子:

涉及的包有:pandas、numpy

    实时输入并获取到执行结果

list = set([2,1,10,15,18])#建立集合

list.remove(2)#删除2,若list中不存在会报错
list.discard(114514)#删除114514,若list中不存在不会报错
list.pop()#随机删除一个并返回

1、导入包:

 

  讲完了集合的编辑,就不得不提集合的几种运算,即交集、并集、差集。在Python中还多了一种对称差集,也就是集合A与集合B中所有不属于A∩B的元素的集合。例子:

图片 2图片 3

  3.解释器路径

list = set([2,1,10,15,18])#建立集合
list_new = set([10,15,18,99,65])#建立集合

#交集
list.intersection(list_new)
list & list_new
#并集
list.union(list_new)
list | list_new
#差集
list.difference(list_new)
list - list_new
#对称差集
list.symmetric_difference(list_new)
list ^ list_new
import pandas as pd
import numpy as np

    #!/usr/bin/env python

  同样,Python中也预设了一些判断语句,方便判断时使用。例子:

View Code

 

list = set([2,1,10,15,18])#建立集合
list_new = set([10,15,18,99,65])#建立集合

#判断是否为子集
list.issubset(list_new)
list_new in list
#判断是否为父集
list.issuperset(list_new)
#未相交判断
list.isdisjoint(list_new)

2、构造DataFrame,里面包含三种数据类型:int、null、str 

  4.编码

文件操作

图片 4图片 5

    # -*- coding:utf8 -*-

  文件操作是任何一种语言学习中的重点。读写硬盘中的文件一方面是为内存中的程序运行提供必要数据,另一方面也是保存内存中运算结果的重要手段。

data = {"number":[1,1,np.nan,np.nan,2,2,1,2,2],
        "letter":['a','b',np.nan,np.nan,'c','d','b','c','d'],
        "label":[1,1,9,9,2,2,1,2,2]}
dataset1 = pd.DataFrame(data) #初始化DataFrame 得到数据集dataset1
print(dataset1)

    python3 不需关注编码

  在Python中,文件操作主要由三个步骤组成:打开——操作——关闭。但是这里首先讲解文件操作中的打开和关闭。

View Code

    python2 出现中文时,就要注意编码

  打开一个文件与关闭这个文件是一一对应的。之要打开,就需要关闭。虽然,在程序运行结束后,会自动从内存中释放打开的文件,但是在整个程序运行的过程中,这个文件都是打开的,这对于数据的安全和运行都是不利的。所以,一定要关闭文件。打开和关闭的方法比较简单。例子:

图片 6

 

f = open('test.txt','r')#打开文件,('文件名及绝对或相对路径','操作权限')
#操作
f.close()#关闭文件

3、空值填充

  5.执行操作

  为了避免忘记关闭文件的不便,鉴于Python缩进编程的优势,还有一种无需写关闭文件的打开方法。例子:

由于数据集里含有空值,为了能够对后面重复数据进行求和,则需要对空值进行填充

    -input的用法:等待,直到用户输入了值,就会将输入的值赋给一个变量,输入的都是字符串

#打开一个文件
with open('test.txt','r') as f:
    #操作
#后续代码

#打开多个文件
with open('test.txt','r') as f,
    open('test_new','w') as f_new:
    #操作
#后续代码

图片 7图片 8

 

  在填写路径时,由于Linux用户的路径使用的是正斜杠,'/';而Windows用户的路径使用的是反斜杠,''。而反斜杠容易被组合形成转义字符,发生冲突。这里Windows用户也可以一律在路径中填写正斜杠,也会识别。下面就要介绍几种常用的操作权限:

dataset = dataset1.fillna("NULL")
print(dataset)

  6.变量名

'''
    'r'      只读
    'w'     只写,若文件存在会覆盖原文件
    'a'      添加,在文件后继续添加,不能读
    'b'      二进制模式,与r和w组合使用,rb,wb
    '+'     添加另一种模式,与r和w组合使用,r+,w+,但只会写在最后
    'U'     #linux与windows的区别,将rn自动转换为n
'''

View Code

    -字母、数字、下划线

  之后,就要介绍文件的操作方法了。首先,要将文件全部读为字符一次性读入内存,可以用这个方法。例子:

图片 9

            -数字不能开头、不能有关键字、最好不要和python内置东西重复

with open('test.txt','r') as f:
    f.readlines()#每行一个元素,全部读入

4、利用duplicated()函数和drop_duplicates()函数对数据去重

            -以下关键字不能声明为变量名

  这种方法只适用于小文件读取。当文件比较大是,如果用这种方法有可能会爆掉内存。这里就要介绍另外一种方法了,及一行一行的读取。文件在刚打开时,文件读取的指针放在了文件初始位置。每读取一次一行,读取指针就会移动到下一行的开头。当读取为空时,就完成了文件的读取。例子:

首先,利用duplicated()函数按列名'letter'和' number '取重复行,其返回的是bool类型,若为重复行则true,反之为false

            'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'

with open('test.txt','r') as f:
    f.readline()#读取第一行
    f.readline()#读取第二行
    f.readline()#读取第三行

图片 10图片 11

 

  当读取到一半时,很难确定此时指针的位置。Python中提供了获取指针位置和移动指针到某一位置的方法。例子:

duplicate_row = dataset.duplicated(subset=['letter',' number '],keep=False) 
print(duplicate_row)

本文由澳门新葡亰手机版发布于编程,转载请注明出处:文件操作,Pandas数据去重和对重复数据分类

上一篇:实现简单的动态表达式构建查询,匿名函数 下一篇:没有了
猜你喜欢
热门排行
精彩图文