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.
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为每条数据的处理函数
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.
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)
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!