最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python如何將數(shù)據(jù)寫到CSV文件中

 更新時(shí)間:2018年06月05日 10:20:28   作者:極客猴  
在數(shù)據(jù)分析中經(jīng)常需要從csv格式的文件中存取數(shù)據(jù)以及將數(shù)據(jù)寫書到csv文件中。下面這篇文章主要給大家介紹了關(guān)于利用Python如何將數(shù)據(jù)寫到CSV文件中的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

我們從網(wǎng)上爬取數(shù)據(jù),最后一步會考慮如何存儲數(shù)據(jù)。如果數(shù)據(jù)量不大,往往不會選擇存儲到數(shù)據(jù)庫,而是選擇存儲到文件中,例如文本文件、CSV 文件、xls 文件等。因?yàn)槲募邆鋽y帶方便、查閱直觀。

Python 作為膠水語言,搞定這些當(dāng)然不在話下。但在寫數(shù)據(jù)過程中,經(jīng)常因數(shù)據(jù)源中帶有中文漢字而報(bào)錯(cuò)。最讓人頭皮發(fā)麻的編碼問題。

我先說下編碼相關(guān)的知識。編碼方式有很多種:UTF-8, GBK, ASCII 等。

ASCII 碼是美國在上個(gè)世紀(jì) 60 年代制定的一套字符編碼。主要是規(guī)范英語字符和二進(jìn)制位之間的關(guān)系。英語詞匯組成簡單,由 26 個(gè)字母構(gòu)成。使用一個(gè)字節(jié)就能表示一個(gè)字母符號。外加各種符號,使用 128 個(gè)字符就滿足編碼要求。

不同國家有不同語言文字。同時(shí),文字組成部分的數(shù)量相比英語字母要多很多。根據(jù)不完全統(tǒng)計(jì),漢字的數(shù)量大約將近 10 萬個(gè),日常所使用的漢字有 3000 個(gè)。顯然,ASCII 編碼無法滿足需求。所以漢字采用 GBK 編碼,使用兩個(gè)字節(jié)表示一個(gè)漢字。簡體中文的編碼方式是 GBK2312。

那 UTF-8 又是什么編碼?這要先說 Unicode 了。Unicode 目的是為了統(tǒng)一各種編碼。因?yàn)楦鲊几髯缘木幋a方式。如果使用一種編碼編碼,使用另一種編碼解碼。這會造成出現(xiàn)亂碼的情況。但 Unicode 只是一個(gè)符號集,它只規(guī)定了符號的二進(jìn)制代碼,卻沒有規(guī)定這個(gè)二進(jìn)制代碼應(yīng)該如何存儲。UTF-8 就是在互聯(lián)網(wǎng)上使用最廣的一種 Unicode 的實(shí)現(xiàn)方式。

因此,如果我們要寫數(shù)據(jù)到文件中,最好指定編碼形式為 UTF-8。

Python 標(biāo)準(zhǔn)庫中,有個(gè)名為 csv 的庫,專門處理 csv 的讀寫操作。

Python csv模塊封裝了常用的功能,使用的簡單例子如下:

# 讀取csv文件
import csv
with open('some.csv', 'rb') as f: # 采用b的方式處理可以省去很多問題
reader = csv.reader(f)
for row in reader:
# do something with row, such as row[0],row[1]


import csv
with open('some.csv', 'wb') as f: # 采用b的方式處理可以省去很多問題
writer = csv.writer(f)
writer.writerows(someiterable)

具體使用實(shí)例如下:

import csv
import codecs
# codecs 是自然語言編碼轉(zhuǎn)換模塊

fileName = 'PythonBook.csv'

# 指定編碼為 utf-8, 避免寫 csv 文件出現(xiàn)中文亂碼
with codecs.open(fileName, 'w', 'utf-8') as csvfile:
 # 指定 csv 文件的頭部顯示項(xiàng)
 filednames = ['書名', '作者']
 writer = csv.DictWriter(csvfile, fieldnames=filednames)

 books = []
 book = {
 'title': '笑傲江湖',
 'author': '金庸',
 }
 books.append(book)

 writer.writeheader()
 for book in books:
 try:
 writer.writerow({'書名':book['title'], '作者':book['author']})
 except UnicodeEncodeError:
 print("編碼錯(cuò)誤, 該數(shù)據(jù)無法寫到文件中, 直接忽略該數(shù)據(jù)")

這種方式是逐行往 CSV 文件中寫數(shù)據(jù), 所以效率會比較低。如果想批量將數(shù)據(jù)寫到 CSV 文件中,需要用到 pandas 庫。

pandas 是第三方庫,所以使用之前需要安裝。通過 pip 方式安裝是最簡單、最方便的。
pip install pandas

使用 pandas 批量寫數(shù)據(jù)的用法如下:

import pandas as pd

fileName = 'PythonBook.csv'
number = 1

books = []
book = {
 'title': '笑傲江湖',
 'author': '金庸',
}
# 如果 book 條數(shù)足夠多的話,pandas 會每次往文件中寫 50 條數(shù)據(jù)。
books.append(book)

data = pd.DataFrame(books)
# 寫入csv文件,'a+'是追加模式
try:
 if number == 1:
 csv_headers = ['書名', '作者']
 data.to_csv(fileName, header=csv_headers, index=False, mode='a+', encoding='utf-8')
 else:
 data.to_csv('fileName, header=False, index=False, mode='a+', encoding='utf-8')
 number = number + 1
except UnicodeEncodeError:
 print("編碼錯(cuò)誤, 該數(shù)據(jù)無法寫到文件中, 直接忽略該數(shù)據(jù)")

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • python中的時(shí)區(qū)問題

    python中的時(shí)區(qū)問題

    這篇文章主要介紹了python中的時(shí)區(qū)問題的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • tensorflow之tf.record實(shí)現(xiàn)存浮點(diǎn)數(shù)數(shù)組

    tensorflow之tf.record實(shí)現(xiàn)存浮點(diǎn)數(shù)數(shù)組

    今天小編就為大家分享一篇tensorflow之tf.record實(shí)現(xiàn)存浮點(diǎn)數(shù)數(shù)組,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python實(shí)現(xiàn)購物程序思路及代碼

    Python實(shí)現(xiàn)購物程序思路及代碼

    本文給大家分享的是使用Python實(shí)現(xiàn)的購物小程序的思路要求以及相關(guān)代碼,非常的簡單實(shí)用,有需要的小伙伴可以參考下
    2017-07-07
  • Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法

    Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法

    跳板機(jī)是一類可作為跳板批量操作的遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)設(shè)備,是系統(tǒng)管理員和運(yùn)維人員常用的操作平臺之一。本文給大家介紹Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法,感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • Python字符串、元組、列表、字典互相轉(zhuǎn)換的方法

    Python字符串、元組、列表、字典互相轉(zhuǎn)換的方法

    這篇文章主要介紹了Python字符串、元組、列表、字典互相轉(zhuǎn)換的方法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Python實(shí)現(xiàn)的堆排序算法示例

    Python實(shí)現(xiàn)的堆排序算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的堆排序算法,結(jié)合實(shí)例形式分析了堆排序的原理及Python定義與使用堆排序算法的相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • python中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法

    python中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法

    這篇文章主要介紹了python中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法,代碼很簡單,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • python圖形繪制奧運(yùn)五環(huán)實(shí)例講解

    python圖形繪制奧運(yùn)五環(huán)實(shí)例講解

    在本文里我們給大家整理了一篇關(guān)于python圖形繪制奧運(yùn)五環(huán)的實(shí)例內(nèi)容,大家可以跟著學(xué)習(xí)下。
    2019-09-09
  • Windows系統(tǒng)下cython_bbox庫的正確安裝步驟

    Windows系統(tǒng)下cython_bbox庫的正確安裝步驟

    Cython-bbox一般無法直接通過pip直接安裝,那么如何安裝呢?下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下cython_bbox庫的正確安裝步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 利用python腳本如何簡化jar操作命令

    利用python腳本如何簡化jar操作命令

    這篇文章主要給大家介紹了關(guān)于利用python腳本如何簡化jar操作命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評論

嘉义市| 体育| 阿城市| 华阴市| 泌阳县| 砀山县| 上杭县| 孙吴县| 金塔县| 凤冈县| 泾阳县| 镇安县| 金塔县| 东宁县| 四会市| 银川市| 新巴尔虎左旗| 承德县| 普宁市| 浮梁县| 育儿| 大竹县| 伊吾县| 奉化市| 瑞昌市| 临泉县| 溧水县| 托克托县| 黄石市| 都匀市| 凤山县| 乐清市| 容城县| 普安县| 汉中市| 分宜县| 清流县| 莱西市| 乌兰察布市| 清新县| 兴隆县|