欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python如何讀寫(xiě)CSV文件

 更新時(shí)間:2020年08月13日 09:15:40   作者:TalkPython  
這篇文章主要介紹了Python如何讀寫(xiě)CSV文件,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

CSV文件是一種純文本文件,它使用特定的結(jié)構(gòu)來(lái)排列表格數(shù)據(jù)。

CSV文件內(nèi)容看起來(lái)應(yīng)該是下面這樣的:

column 1 name,column 2 name, column 3 name
first row data 1,first row data 2,first row data 3
second row data 1,second row data 2,second row data 3
...

每段數(shù)據(jù)是如何用逗號(hào)分隔的。通常,第一行標(biāo)識(shí)每個(gè)數(shù)據(jù)塊——換句話說(shuō),數(shù)據(jù)列的名稱(chēng)。之后的每一行都是實(shí)際數(shù)據(jù),僅受文件大小限制。

CSV文件通常由處理大量數(shù)據(jù)的程序創(chuàng)建。它們是一種從電子表格和數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)以及導(dǎo)入或在其他程序中使用數(shù)據(jù)的方便方法。例如,您可以將數(shù)據(jù)挖掘程序的結(jié)果導(dǎo)出到CSV文件中,然后將其導(dǎo)入到電子表格中,以分析數(shù)據(jù)、為演示生成圖表或準(zhǔn)備發(fā)布報(bào)告。

CSV文件非常容易通過(guò)編程處理。任何支持文本文件輸入和字符串操作的語(yǔ)言(如Python)都可以直接使用CSV文件。

讀取CSV文件內(nèi)容

在Python中,使用csv庫(kù)來(lái)讀取CSV文件內(nèi)容。在讀文件之前,先創(chuàng)建一個(gè)a.csv的文件,內(nèi)容是下面這樣:

名字,部門(mén),月份
John Smith,Accounting,November
Erica Meyers,IT,March

文件創(chuàng)建完成后,開(kāi)始編寫(xiě)讀取文件內(nèi)容的程序:

import csv

with open('a.csv') as csv_file:
  csv_reader = csv.reader(csv_file,delimiter=',')
  line_count = 0

  for row in csv_reader:
    if line_count == 0:
      print(f'Column names are {", ".join(row)}')
      line_count += 1
    else:
      print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.')
      line_count += 1
    print(f'Processed {line_count} lines.')

寫(xiě)入數(shù)據(jù)到CSV文件

上面編寫(xiě)了讀取內(nèi)容的程序,下面繼續(xù)編寫(xiě)一個(gè)寫(xiě)文件的程序。我們寫(xiě)到b.csv文件中。

import csv

with open('b.csv', mode='w') as employee_file:
  employee_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

  employee_writer.writerow(['John Smith', 'Accounting', 'November'])
  employee_writer.writerow(['Erica Meyers', 'IT', 'March'])

如果你感覺(jué)使用csv庫(kù)讀寫(xiě)效率比較地下,或者編寫(xiě)的代碼太多。下面我介紹一種更高效的方法。

用pandas讀csv

假設(shè)我們有一個(gè)c.csv文件,具體內(nèi)容如下:

Name,Hire Date,Salary,Sick Days remaining
Graham Chapman,03/15/14,50000.00,10
John Cleese,06/01/15,65000.00,8
Eric Idle,05/12/14,45000.00,10
Terry Jones,11/01/13,70000.00,3
Terry Gilliam,08/12/14,48000.00,7
Michael Palin,05/23/13,66000.00,8

用pandas讀取csv:

import pandas
df = pandas.read_csv('hrdata.csv')
print(df)

# 輸出的df

#       Name Hire Date  Salary Sick Days remaining
# 0 Graham Chapman 03/15/14 50000.0          10
# 1   John Cleese 06/01/15 65000.0          8
# 2    Eric Idle 05/12/14 45000.0          10
# 3   Terry Jones 11/01/13 70000.0          3
# 4  Terry Gilliam 08/12/14 48000.0          7
# 5  Michael Palin 05/23/13 66000.0          8

用pandas寫(xiě)csv

讓我們用新的列名將數(shù)據(jù)寫(xiě)入一個(gè)新的CSV文件:

import pandas
df = pandas.read_csv('hrdata.csv', 
      index_col='Employee', 
      parse_dates=['Hired'],
      header=0, 
      names=['Employee', 'Hired', 'Salary', 'Sick Days'])
df.to_csv('d.csv')

# d.csv文件內(nèi)容

# Employee,Hired,Salary,Sick Days
# Graham Chapman,2014-03-15,50000.0,10
# John Cleese,2015-06-01,65000.0,8
# Eric Idle,2014-05-12,45000.0,10
# Terry Jones,2013-11-01,70000.0,3
# Terry Gilliam,2014-08-12,48000.0,7
# Michael Palin,2013-05-23,66000.0,8

如果你了解讀取CSV文件的基礎(chǔ)知識(shí),那么當(dāng)您需要處理導(dǎo)入數(shù)據(jù)時(shí),就不會(huì)手足無(wú)措?;镜腃SV Python庫(kù)可以輕松地處理大多數(shù)CSV讀取、處理和編寫(xiě)任務(wù)。如果你有很多數(shù)據(jù)要讀取和處理,panda庫(kù)還提供了快速和簡(jiǎn)單的CSV處理功能。

以上就是Python如何讀寫(xiě)CSV文件的詳細(xì)內(nèi)容,更多關(guān)于Python讀寫(xiě)CSV文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過(guò)程解析

    Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python中Merge使用的示例詳解

    Python中Merge使用的示例詳解

    Python里的merger函數(shù)是數(shù)據(jù)分析工作中最常見(jiàn)的函數(shù)之一,類(lèi)似于MySQL中的join函數(shù)和Excel中的vlookup函數(shù)。本文將通過(guò)一些簡(jiǎn)單的實(shí)力和大家聊聊Merge的使用,需要的可以了解一下
    2023-02-02
  • 快速進(jìn)修Python指南之面向?qū)ο蠡A(chǔ)

    快速進(jìn)修Python指南之面向?qū)ο蠡A(chǔ)

    這篇文章主要為大家介紹了Java開(kāi)發(fā)者快速進(jìn)修Python指南之面向?qū)ο蠡A(chǔ),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 基于注解實(shí)現(xiàn) SpringBoot 接口防刷的方法

    基于注解實(shí)現(xiàn) SpringBoot 接口防刷的方法

    這篇文章主要介紹了基于注解實(shí)現(xiàn) SpringBoot 接口防刷的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python?運(yùn)行?shell?命令的方法匯總

    Python?運(yùn)行?shell?命令的方法匯總

    這篇文章主要介紹了Python運(yùn)行shell命令的一些方法,我們來(lái)看一下 python 中有哪些自帶模塊或者方法可以實(shí)現(xiàn),對(duì)Python運(yùn)行shell命令感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • python利用xpath爬取網(wǎng)上數(shù)據(jù)并存儲(chǔ)到django模型中

    python利用xpath爬取網(wǎng)上數(shù)據(jù)并存儲(chǔ)到django模型中

    這篇文章主要介紹了python利用xpath爬取網(wǎng)上數(shù)據(jù)并存儲(chǔ)到django模型中,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • python執(zhí)行l(wèi)inux系統(tǒng)命令的三種方式小結(jié)

    python執(zhí)行l(wèi)inux系統(tǒng)命令的三種方式小結(jié)

    本文介紹三種在python執(zhí)行l(wèi)inux命令的方式,三種方式都是基于python的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn),因此不需要額外安裝第三方庫(kù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Python簡(jiǎn)直是萬(wàn)能的,這5大主要用途你一定要知道?。ㄍ扑])

    Python簡(jiǎn)直是萬(wàn)能的,這5大主要用途你一定要知道?。ㄍ扑])

    這篇文章主要介紹了Python主要用途,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python Crypto模塊的安裝與使用方法

    python Crypto模塊的安裝與使用方法

    本篇文章主要介紹了python Crypto模塊的安裝與使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 使用Python進(jìn)行PowerPoint幻燈片背景設(shè)置

    使用Python進(jìn)行PowerPoint幻燈片背景設(shè)置

    設(shè)置PowerPoint幻燈片背景不僅能夠增強(qiáng)演示文稿的視覺(jué)吸引力,還能幫助傳達(dá)特定的情感或信息,本文將介紹如何使用Python為PowerPoint幻燈片設(shè)置純色、漸變及圖片背景,有需要的可以參考下
    2024-11-11

最新評(píng)論