Python合併多個csv檔案
匯入所需的包
import os
import pandas as pd
import glob
合併多個csv檔案
csv_list = glob.glob('*.csv') #檢視同資料夾下的csv檔案數
print(u'共發現%s個CSV檔案'% len(csv_list))
print(u'正在處理............')
for i in csv_list: #迴圈讀取同資料夾下的csv檔案
fr = open(i,'rb').read()
with open('result.csv','ab') as f: #將結果儲存為result.csv
f.write(fr)
print(u'合併完畢!')
共發現9個CSV檔案
正在處理............
合併完畢!
去重函式
這個函式將重複的內容去掉,主要是去表頭。
df = pd.read_csv("result.csv",header=0)
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 659867 entries, 0 to 659866
Data columns (total 3 columns):
UrbanRuralCode 659867 non-null object
code 659867 non-null object
name 659867 non-null object
dtypes: object(3)
memory usage: 15.1+ MB
IsDuplicated = df.duplicated()
True in IsDuplicated
True
這說明了這個DataFrame格式的資料含有重複項。
DataFrame.drop_duplicates函式的使用
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)
- subset : column label or sequence of labels, optional
用來指定特定的列,預設所有列 - keep : {‘first’, ‘last’, False}, default ‘first’
刪除重複項並保留第一次出現的項 - inplace : boolean, default False
是直接在原來資料上修改還是保留一個副本
datalist = df.drop_duplicates(keep = False)
datalist.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 659859 entries, 0 to 659866
Data columns (total 3 columns):
UrbanRuralCode 659859 non-null object
code 659859 non-null object
name 659859 non-null object
dtypes: object(3)
memory usage: 20.1+ MB
排序函式
datalist_sorted = datalist.sort_values(by = ['code']) #按1列進行升序排序
結果寫入csv檔案
datalist_sorted.to_csv("village_all.csv", sep = ',', header = True,index = False)
問題
Python讀取檔案問題
錯誤資訊
"UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence"
解決方案
fr = open(i,'r').read() 改為 fr = open(i,'rb').read()
with open('result.csv','a') as f: 改為 with open('result.csv','ab') as f:
重複值問題
這裡我合併了9個csv檔案,檢查最後合併結果發現,裡面還有一個列名。這是因為9個為檔案,其中8個的列名被認為是DataFrame的值,第1個的列名依舊為列名,然後再去重的過程中,8個相同值被保留了1個,所以這會導致最後的csv檔案多了一個列名。
解決方案
IsDuplicated = df.duplicated() 改為 IsDuplicated = df.duplicated(keep = False) #重複資料全部去除
相關文章
- python合併多個csv檔案需要注意的問題(合併多個列名問題)Python
- Python合併多個Excel檔案中的指定sheetPythonExcel
- 多個 EXCEL 檔案如何合併成一個檔案Excel
- 多個excel檔案合併成一個excel表的方法 如何快速合併多個excel檔案Excel
- 多個excel檔案合併到一個檔案中的多個sheet表中Excel
- python多個txt合併Python
- 辦公自動化:PDF檔案合併器,將多個PDF檔案進行合併
- Python之合併PDF檔案Python
- python生成CSV檔案Python
- cat-合併輸出多個檔案的內容
- Python處理CSV檔案的幾個方法Python
- python 寫入CSV檔案Python
- 使用 Python 處理 CSV 檔案Python
- PDF多檔案合併怎麼完成?PDF合併的簡單方法分享
- git合併單個檔案到其他分支Git
- Linux下合併檔案Linux
- 如何使用python把json檔案轉換為csv檔案PythonJSON
- python 使用字典讀取CSV檔案Python
- PHP引入合併多個JS和CSS檔案例項PHPJSCSS
- Python結合檔名稱將多個檔案複製到不同路徑下Python
- 麒麟V10、UOS系統實現線上合併多個Word檔案
- 多個commit合併成一個MIT
- (Python基礎教程之十二)Python讀寫CSV檔案Python
- VBA遍歷 Excel 合併到一個 Excel 檔案Excel
- 如何在 Acrobat Pro DC 與其它檔案合併建立單個 PDF 檔案?BAT
- Excel/CSV 匯入匯出庫,支援大檔案,樣式設定,單元格合併Excel
- Python讀寫txt檔案、轉換csv檔案與pandas條件計數、求和的綜合運用Python
- git合併分支,如果選擇性的合併檔案?Git
- csv是什麼格式檔案 csv檔案是什麼意思
- 針對不同場景的Python合併多個Excel方法PythonExcel
- CSV檔案儲存
- pandas操作csv檔案
- Modern CSV for mac CSV檔案編輯器Mac
- goland 把多個專案視窗合併到一個視窗GoLand
- git合併多個commit & 壓縮合並GitMIT
- csv檔案用什麼開啟 csv是什麼格式檔案
- 資料檔案合併與拆分
- shell 檔案合併 去重 分割