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

高洛峰
Libérer: 2017-03-19 15:52:39
original
2961 Les gens l'ont consulté

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]
Copier après la connexion

Sortie

{'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'}
Copier après la connexion

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为每条数据的处理函数
Copier après la connexion

É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()
Copier après la connexion

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')
Copier après la connexion

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)
Copier après la connexion

DataFrame écrit un fichier csv

dfrme.to_csv('E:/dst.csv', index=False) # 不要每行的编号
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal