現有兩個csv檔案,分別如圖所示
檔案一:
檔案二:
需要生成乙個新的檔案,在檔案二的基礎上增加一列 ptid,包含三列:rid,lable,ptid,需要按照檔案一的rid-ptid關係進行增加。
需要注意,檔案一有5000+行,檔案二有400+行。
如果按照手工進行依次修改,效率極低,需要一行一行查詢。使用python可以很容易的完成這一任務:
這裡使用pandas庫進行csv檔案的讀取操作,使用csv庫進行檔案的寫入操作。
import csv
import pandas as pd
r = pd.read_csv(
"roster.csv"
)# 檔案1
mci = pd.read_csv(
"mci_rid_mlabel.csv"
)# 檔案2
f =open
('res.csv'
,'w'
,encoding=
'utf-8'
,newline='')
# 寫入檔案,注意newline='',沒有會造成有空行
res = csv.writer(f)
res.writerow(
["rid"
,"label"
,"ptid"])
# 寫入表頭
for i in
range(0
,mci.shape[0]
):# 依次遍歷檔案2
d = mci.iloc[i]
['rid'
]# 獲取當前行的 rid
for j in
range(0
,r.shape[0]
):# 在檔案 1 中依次查詢 rid
if r.iloc[j]
['rid'
]== d:
res.writerow(
[d,mci.iloc[i]
['label'
],r.iloc[j]
['ptid']]
)# 查詢到,寫入新檔案中
break
# 直接break,進入下一行查詢
f.close(
)# 關閉檔案,千萬別忘了
只需幾秒鐘,新的檔案就生成了:
使用python進行這種**處理十分容易
寫**只要幾分鐘,雖然有兩重迴圈,但是也只要幾秒鐘就執行完成。要是手工做,費事費力,正確率還不能保證。
人生苦短,我用python,hhh
python縱向合併(按行合併)多個csv檔案
將多個csv檔案合到乙個csv檔案 import os import pandas as pd import glob csv list glob.glob 14 points 檢視同資料夾下的csv檔案數 print u 共發現 s個csv檔案 len csv list print u 正在處理....
記excel匯出相同列單元格合併
private log logger logfactory.getlog this.getclass 查詢資料存到list中 list rtnlist new arraylist object objpercentage for iterator iterator1 list.iterator it...
hive 相同key 多行多列合併 處理
在join 的過程中我們很容易出現資料膨脹現象,即一行變成多 況。面對這種情況,一般會有兩種處理方式 第一種 用row number 等分窗函式,根據不同策略取不同行的資料 第二種 將相同key對應多行的情況合併成一行,如果一行有多個字段,還有可能合併為乙個欄位中 如源表結構 pcgid strin...