本文目录一览:
- 1、python如何去除重复行并写入另一个文件
- 2、python如何批量对每一个excel文件进行去重?
- 3、利用Python编写判断文件是否有重复行的脚本
- 4、python如何合并多个txt文件删除所有重复行并生成新文件
- 5、急求:如何用python删除文本中的重复行?
- 6、python用drop_duplicates()函数保留数据集的重复行
python如何去除重复行并写入另一个文件
fin = 'a.txt'
fout = 'b.txt'
with open(fin) as f:
ss = f.reads().strip().split('\n')
s2 = [ss[0]]
for s in ss[1:]:
if s != s2[-1]:
s2.append(s)
with open(fout, 'w') as f:
f.write('\n'.join(s2))
or
fin = 'a.txt'
fout = 'b.txt'
with open(fin) as f:
ss = f.reads().strip().split('\n')
s2 = [ss[i] for i in range(len(ss)) if i==0 or ss[i]!=ss[i-1]]
with open(fout, 'w') as f:
f.write('\n'.join(s2))
python如何批量对每一个excel文件进行去重?
01
去重
我们使用Pandas库的drop_duplicates(subset=None, keep=‘first’, inplace=False)功能来对Excel文件中的重复项进行删除。
其中,subset参数代表指定列标记,默认当每一条行记录完全相同时,才会认定为重复行;keep=‘’有‘first’、‘last’和‘False’,意思是删除重复行时,保留first还是last还是全部删除,默认参数是‘first’;inplace=‘’有True和Flase,意思是直接替换还是保留副本,默认值是Flase。
读取Excel
import pandas as pd
df = pd.read_excel('全部.xlsx')
选中列去重
df.drop_duplicates(['用户名称'])
其中第2、3行的用户名称与第0、1行重复,所以被删除。
03
保存最后一个重复数据
df.drop_duplicates(['用户名称'],keep='last')
04
保存Excel
df.to_excel('去重后.xlsx')
02
批量获取Excel文件
在上面我们已经学会如何对单个Excel文件去重了,但是在读取文件名的时候,我们还是需要手动输入的,如果文件很多的话,我们要一个一个的输入,这不仅麻烦,而且也不符合自动化办公的名头。所以,我们就需要想办法取得该目录下的所有Excel文件。
这里我们用的是Pathlib库,取得该目录下所有的xlsx格式文件。
path = 'K:\自动化办公'
利用Python编写判断文件是否有重复行的脚本
# coding:UTF-8
def rept(file):
f=open(file,'r')
lines=f.readlines()
f.close()
lines.sort()
oldline='z^z^z^z^z^z^z^z^z'
k=1
for newline in lines:
if (newline==oldline)and(k!=1):
return True
else:
oldline=newline
k+=1
return False
print(rept('c:/python27/rep.txt'))
python如何合并多个txt文件删除所有重复行并生成新文件
把所有的这些txt文件放到一个文件夹里
打开cmd, 进入到这个放了多个txt的文件夹, 运行命令copy *.txt all.txt
在该文件夹下创建一个python脚本 1.py, 将下列代码复制进去
# coding=utf-8
# using python27
file_path = 'all.txt'
with open(file_path, 'r') as f:
card_informations = map(lambda x: x.strip().split('\t'), f.readlines())
for i in range(len(card_informations)):
number = card_informations[i][0]
if len(number)10:
card_informations[i][0] += '0' # 给小于十位的加上0
# 剔除重复数据
result = []
for i in card_informatios:
if i not in result:
result.append(i)
# 写入新文件
with open('result.txt', 'w+') as f:
for i in range(len(result)):
f.write(result[i][0]+'\t'+result[i][1]+'\n)
4. 运行该脚本, 然后该文件夹下就会多出一个result.txt的文件, 里面放的就是去重完之后的所有卡信息.
急求:如何用python删除文本中的重复行?
1.如果你的txt 文件不大的话 可以直接
tmp = open('**.txt').readlines() #把内容一次性全部读取出来 是一个列表
set(tmp) #这个就是把列表 去重复
然后 你可以把 这个去重后的tmp 写入到新的文件
2.txt很大,那么只能一行一行的读取去重了
#!/usr/bin/env python
# coding=utf-8
# python 2.7
outfile = open('result-readline.txt', 'w') #新的文件
list_1=[]
for line in open('test.txt'): #老文件
tmp = line.strip()
if tmp not in list_1:
list_1.append(tmp)
outfile.write(line)
outfile.close()
python用drop_duplicates()函数保留数据集的重复行
前两天处理数据的时候,需要得到两个数据的交集数据,所以要去除数据中非重复部分,只保留数据中的重复部分。
网上看了一下大家的教程,大部分都是教去除重复行,很少有说到仅保留重复行的。所以在这里用drop_duplicates这个去重函数来实现这个功能。
drop_duplicates函数介绍 :
data.drop_duplicates(subset=[‘A’,‘B’],keep=‘first’,inplace=True)
#subset对应的值是列名,表示只考虑这两列,将这两列对应值相同的行进行去重。
默认值为subset=None表示考虑所有列。
keep='first’表示保留第一次出现的重复行,是默认值。
keep另外两个取值为"last"和False,分别表示保留最后一次出现的重复行和去除所有重复行。
inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。
要用函数取得数据集data中的重复列,分三个步骤 :
(提前导入pandas模块)
data0_1 = data.drop_duplicates() #保留第一个重复行
data0_2 = data.drop_duplicates(keep=False) #去除所有重复行
data0_3=pd.concat([data0_1,data0_2]).drop_duplicates(keep=False)
#合并起来再去重,只剩下真的重复行。
举例:data中wangwu行和tony行重复,需要把它们两行取出。
第一步:#保留第一个重复行
第二步:#去除所有重复行
第三步:#合并起来再去重
通过以上步骤实现取出数据中的重复行。