教你用Python讀取CSV檔案的5種方式

2022-09-24 14:39:18 字數 1026 閱讀 2982

目錄

在python裡面,讀取或寫入csv檔案時,首先要import csv這個庫,然後利用這個庫提供的方法進行對檔案的讀寫。

典型的資料集stocks.csv:

一**票的資料集,其實就是常見的**資料。有****,**,日期,時間,**變動和成交量。這個資料集其實就是乙個**資料,有自己的頭部和身體。

我們先來看一種簡單讀取方法,先用csv.reader()函式讀取檔案的控制代碼f生成乙個csv的控制代碼,其實就是乙個迭代器,我們看一下這個reader的原始碼:

餵給reader乙個可迭代物件或者是檔案的object,然後返回乙個可迭代物件。

上面的第一招其實是最簡單的,下面我們用nametuple 來包裹一下這個生成的row資料。

如果我們對csv資料每一行的型別都非常清楚的話,嘿嘿可以用乙個設定好的資料格式轉換頭來對資料進行轉換。

操作的步驟其實跟上面差不多,就是對資料結果的清洗處理稍微不一樣。這裡非常巧妙的zip來構造乙個巢狀的資料列表,然後用convert(data)把csv檔案裡面每一行的資料進行型別轉換,這招真的不錯!

看一下結果:

上面用的nametuple其實也是乙個資料的對映,有沒有什麼方法可以直接把csv 的內容用對映的方法讀取,直接出來乙個字典,還真有的,來看一下**:

是不是非常簡捷,原來csv模組直接內建了dictreader(),按照字典的方法進行讀取,然後生成乙個有序的字典,看一下結果:

有興趣的可以看一下這個dictreader()的原始碼,它其實乙個內部構造的迭代器類,在內部的__next__其實也是用的ordereddict(zip(self.fieldnames, row))來生成的。

如果我們需要對這個csv裡面的資料進行清洗,因為讀出來的時候都是字串,我們需要更新為特定的資料型別,這個時候也可以用字典轉換這一招,也是非常巧妙的,我們看一下原始碼:

原來的資料**price和成交量,我希望最後讀取生成的是乙個浮點型資料和整形的資料,這麼搞呢,用乙個字典來巧妙的更新key即可。

www.cppcns.com

用python讀取csv程式設計客棧檔案的5種方式

教你用Python感受量子霸權

用python的qiskit包體驗量子演算法 一 qiskit的安裝 目前ibm推出的qiskit是非常棒的python量子模擬器,安裝非常簡單 另外如果各位讀者之前有ibm q的帳號,也可以到環境去感受。基本量子邏輯門介紹 pauli x gate 相當於經典的邏輯非門。pauli y gate ...

教你用Ruby算命!

本文又名 看看我的破機器能算多少個梅森數出來 如下,mersennes def is prime?n 這裡是用了費馬小定理,很慢很慢!2.n 1 each end 1.13 each do n m 2 n 1 mersennes 上面這個寫法,2 x要計算兩次,寫法好看,但效能很低 p mersen...

小白必看 教你用Python做計算

今天給大家分享的是用python計算等差數列,等比數列。import numpy as np import math import matplotlib as mpl from matplotlib import pyplot as plt from mpl toolkits.mplot3d imp...