1. 程式人生 > 其它 >Python資料分析基礎——CSV檔案——讀取多個CSV檔案

Python資料分析基礎——CSV檔案——讀取多個CSV檔案

技術標籤:python資料分析資料分析python

參考文獻:《Python資料分析基礎》

前言

在大多數情況下,需要處理的檔案很多。在這種情況下,Python會給你帶來驚喜,因為它可以讓你自動化和規模化地進行資料處理,遠遠超過手工處理能夠達到的限度。

建立多個CSV檔案

為了處理多個CSV檔案,首先需要建立多個CSV檔案。在本文中只建立了三個檔案,而在實際應用中,可以拓展為任意多的檔案。

將第一個CSV檔案命名為:sales_january_2014.csv
在這裡插入圖片描述
將第二個CSV檔案命名為:sales_january_2014.csv
在這裡插入圖片描述
將第三個CSV檔案命名為:sales_march_2014.csv


在這裡插入圖片描述
最後,將上述三個CSV檔案儲存在名為sale的資料夾中。

檔案計數與檔案中的行列計數

從簡單的行列計數開始學習處理多個CSV檔案。

建立指令碼

在文字編輯器中輸入一段程式碼,然後將檔案儲存為:8_csv_reader_counts_for_multiple_files.py

#!/usr/bin/env python3
import csv
import glob
import os
import sys

input_path = sys.argv[1]

file_counter = 0
for input_file in glob.glob(os.path.join(input_path,'sales_*'
)): row_counter = 1 with open(input_file, 'r', newline='') as csv_in_file: filereader = csv.reader(csv_in_file) header = next(filereader) for row in filereader: row_counter += 1 print('{0!s}: \t{1:d} rows \t{2:d} columns'.format(os.path.basename(input_file), row_counter, len(header))) file_counter +=
1 print('Number of files: {0:d}'.format(file_counter))
指令碼程式碼思想
指令碼 資料夾sale 檔案1 檔案2 檔案3

指令碼通過資料夾sale的檔案路徑(儲存在argv[1]中),訪問其中的三個檔案。建立控制流語句和迴圈體進行系列操作。

指令碼程式碼註釋
input_path = sys.argv[1]

這一行程式碼建立了input_path變數,並將資料夾sale的檔案路徑賦值給它。

for input_file in glob.glob(os.path.join(input_path,'sales_*')):

這一行程式碼包含了glob模組和os模組。glob模組可以定位匹配於某個特定模式的所有路徑名。os模組包含了用於解析路徑名的函式。
此行程式碼建立了for迴圈,並使用glob模組和os模組建立了一個輸入檔案的列表。首先os.path.join函式將圓括號中的兩部分連線起來,input_path是包含輸入檔案的資料夾的路徑,'sales_* '代表任何以’sale_'開頭的檔名。glob.glob函式將’sales_* ‘中的星號(*)轉換為實際的檔名。’ * '為萬用字元。
這裡簡單區分一下萬用字元和正則表示式。萬用字元由shell解析,一般由於檔名匹配。正則表示式一般用來匹配字串。

header = next(filereader)

這一行程式碼在之前處理單個CSV檔案中很常見,大部分用作提取標題行。在這裡,用來後續統計列數。

最後,小編提示一下,在這個指令碼中,巢狀結構較多,進行縮排時要細心。

執行指令碼

在命令列輸入以下命令,然後按回車鍵:
在這裡插入圖片描述

檢視結果

在這裡插入圖片描述

結語

本篇部落格介紹讀取多個CSV檔案的方法,總結了實際操作,需重點理解處理思想,掌握各個函式模組的作用及知識。