本文目錄一覽:
- 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行重複,需要把它們兩行取出。
第一步:#保留第一個重複行
第二步:#去除所有重複行
第三步:#合併起來再去重
通過以上步驟實現取出數據中的重複行。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/182981.html