Maison >développement back-end >Tutoriel Python >Explication détaillée de la méthode Python de lecture et d'écriture de fichiers au format CSV

Explication détaillée de la méthode Python de lecture et d'écriture de fichiers au format CSV

高洛峰
高洛峰original
2017-03-19 15:52:392958parcourir

Python lit et écrit des fichiers au format csv

Dans l'analyse des données, il est souvent nécessaire d'accéder aux données des fichiers au format csv et d'écrire des données dans des fichiers csv. Il est très pratique et sans problème de lire directement les données du fichier csv dans le type dict et DataFrame. Le code suivant prend les données de l'iris comme exemple.

Le fichier CSV est lu comme dict

Code

# -*- coding: utf-8 -*-
import csv
with open('E:/iris.csv') as csvfile:
reader = csv.DictReader(csvfile, fieldnames=None)   # fieldnames默认为None,如果所读csv文件没有表头,则需要指定
list_1 = [e for e in reader]  # 每行数据作为一个dict存入链表中
csvfile.close()
print list_1[0]

Sortie

{'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'}

Si chaque élément de données lu doit être traité séparément et les données La quantité est importante, il est donc recommandé de les traiter une par une avant de les insérer.

list_1 = list()
for e in reader:
  list_1.append(your_func(e)) # your_func为每条数据的处理函数

Écrivez plusieurs éléments de données de type dict dans un fichier csv

Code

#   数据
data = [
{'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'},
{'Petal.Length': '1.4', 'Sepal.Length': '4.9', 'Petal.Width': '0.2', 'Sepal.Width': '3', 'Species': 'setosa'},
{'Petal.Length': '1.3', 'Sepal.Length': '4.7', 'Petal.Width': '0.2', 'Sepal.Width': '3.2', 'Species': 'setosa'},
{'Petal.Length': '1.5', 'Sepal.Length': '4.6', 'Petal.Width': '0.2', 'Sepal.Width': '3.1', 'Species': 'setosa'}
]
#   表头
header = ['Petal.Length', 'Sepal.Length', 'Petal.Width', 'Sepal.Width', 'Species']
print len(data)
with open('E:/dst.csv', 'wb') as dstfile:   #写入方式选择wb,否则有空行
    writer = csv.DictWriter(dstfile, fieldnames=header)
    writer.writeheader()    #   写入表头
    writer.writerows(data)  # 批量写入
dstfile.close()

Le code ci-dessus écrit l'intégralité des données dans un fichier csv. la quantité de données est importante. Si vous souhaitez voir la quantité de données écrites en temps réel, vous pouvez utiliser la fonction writerows.

Lire le fichier csv en tant que DataFrame

Code

# 读取csv文件为DataFrame
import pandas as pd
dframe = pd.DataFrame.from_csv('E:/iris.csv')

Vous pouvez également le tordre un peu :

import csv
import pandas as pd
with open('E:/iris.csv') as csvfile:
    reader = csv.DictReader(csvfile, fieldnames=None)   # fieldnames默认为None,如果所读csv文件没有表头,则需要指定
    list_1 = [e for e in reader]  # 每行数据作为一个dict存入链表中
csvfile.close()
dfrme = pd.DataFrame.from_records(list_1)

DataFrame écrit un fichier csv

dfrme.to_csv('E:/dst.csv', index=False) # 不要每行的编号

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn