
Python 處理數(shù)據(jù)的實(shí)例詳解
最近用python(3.2的版本)寫了根據(jù)特定規(guī)則,處理數(shù)據(jù)的一個小程序,用到了一些python常用的基礎(chǔ)知識,在此總結(jié)一下:
1,python讀文件
2,python寫文件
3,python的流程控制
4,python的for循環(huán)
5,python的集合,或字符串里判斷是否存在某個元素
6,python的邏輯或,邏輯與
7,python的正則過濾
8,python的字符串忽略空格,和以某個字符串開頭和按某個字符拆分成list
python的打開文件的模式:
關(guān)于open 模式:
w 以寫方式打開,
a 以追加模式打開 (從 EOF 開始, 必要時創(chuàng)建新文件)
r+ 以讀寫模式打開
w+ 以讀寫模式打開 (參見 w )
a+ 以讀寫模式打開 (參見 a )
rb 以二進(jìn)制讀模式打開
wb 以二進(jìn)制寫模式打開 (參見 w )
ab 以二進(jìn)制追加模式打開 (參見 a )
rb+ 以二進(jìn)制讀寫模式打開 (參見 r+ )
wb+ 以二進(jìn)制讀寫模式打開 (參見 w+ )
ab+ 以二進(jìn)制讀寫模式打開 (參見 a+ )
處理代碼如下:
def showtxt(path,outpathname,detailpath):
greenpath=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\green.txt";
redpath=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\red.txt";
redset=listtxt(redpath)
greenset=listtxt(greenpath)
print("紅色詞數(shù)量: ",len(redset))
print("綠色詞數(shù)量: ",len(greenset))
#符合1條件的內(nèi)容寫入
f1=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\1.txt",encoding="UTF-8",mode="a+")
#符合2條件的內(nèi)容寫入
f2=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\2.txt",encoding="UTF-8",mode="a+")
#符合3條件的內(nèi)容寫入
f3=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\3.txt",encoding="UTF-8",mode="a+")
#符合4條件的內(nèi)容寫入
f4=open(r"C:\Users\qindongliang\Desktop\tnstxt\result\\"+detailpath+"\\4.txt",encoding="UTF-8",mode="a+")
delcount=1;
f=open(path,encoding="UTF-8",mode="r+")
fnew=open(outpathname,encoding="UTF-8",mode="a+")
flog=open(outpathname+".log",encoding="UTF-8",mode="a+")
#count=1;
for line in f:
list=line.strip().split("\t")
line=line.strip()
catalogid=list[0]
score=list[1]
keyword=clear(list[4].strip())
if keyword in redset:
if catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003") :
f1.write(line+"\n")#符合1條件寫入
fnew.write(line+"\n")#符合1條件寫入
else:
flog.write(line+" 不符合條件1 "+"\n")
delcount=delcount+1
if keyword in greenset:
if not (catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003")) :
fnew.write(line+"\n")
else:
f2.write(line+"\n")
flog.write(line+" 不符合條件2"+"\n")
delcount=delcount+1
flist=formatStrList(keyword)
if "sexy" in flist or "sex" in flist:
if catalogid.startswith("018022") or catalogid.startswith("018035") or catalogid.startswith("014023003") :
f3.write(line+"\n")
fnew.write(line+"\n")
else:
flog.write(line+" 不符合條件3"+"\n")
delcount=delcount+1
#if (keyword.find("underwear")!=-1) & keyword.find("sexy")==-1 & keyword.find("sex")==-1:
if "underwear" in flist and "sexy" not in flist and "sex" not in flist:
if catalogid.startswith("014032") :
f4.write(line+"\n")
fnew.write(line+"\n")
else:
flog.write(line+" 不符合條件4"+"\n")
delcount=delcount+1
#print(list[0]," ",list[1]," ",list[4])
#print()
flog.write("刪除總數(shù)目: "+str(delcount))
f.close()
f1.close()
f2.close()
f3.close()
f4.close()
fnew.close()
flog.close()
import re
def clear(str):
str=re.sub("[\"\"\'\'+]","",str)
return str
def formatStrList(keyword):
list=keyword.split(" ")
for item in list:
item.strip();
return list
def listtxt(path):
f=open(path,encoding="UTF-8")
s=set()
for line in f:
s.add(line.strip())
f.close()
return s
path1=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\highfrequency.txt"
pathout1=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\detail\\a_highfrequency.txt"
detail1path="highfrequency"
path2=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\highfrequency_d1.txt"
pathout2=r"C:\\Users\\qindongliang\\Desktop\\tnstxt\\detail\\b_highfrequency_d1.txt"
detail2path="highfrequency_d1"
#showtxt(path1,pathout1,detail1path)
showtxt(path2,pathout2,detail2path)
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
訓(xùn)練與驗(yàn)證損失驟升:機(jī)器學(xué)習(xí)訓(xùn)練中的異常診斷與解決方案 在機(jī)器學(xué)習(xí)模型訓(xùn)練過程中,“損失曲線” 是反映模型學(xué)習(xí)狀態(tài)的核心指 ...
2025-09-19解析 DataHub 與 Kafka:數(shù)據(jù)生態(tài)中兩類核心工具的差異與協(xié)同 在數(shù)字化轉(zhuǎn)型加速的今天,企業(yè)對數(shù)據(jù)的需求已從 “存儲” 轉(zhuǎn)向 “ ...
2025-09-19CDA 數(shù)據(jù)分析師:讓統(tǒng)計(jì)基本概念成為業(yè)務(wù)決策的底層邏輯 統(tǒng)計(jì)基本概念是商業(yè)數(shù)據(jù)分析的 “基礎(chǔ)語言”—— 從描述數(shù)據(jù)分布的 “均 ...
2025-09-19CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-19SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11