ホームページ  >  記事  >  バックエンド開発  >  Pythonのcsv形式ファイルの読み書き方法を詳しく解説

Pythonのcsv形式ファイルの読み書き方法を詳しく解説

高洛峰
高洛峰オリジナル
2017-03-19 15:52:392921ブラウズ

Pythonはcsv形式ファイルを読み書きします

データ分析では、csv形式ファイルのデータにアクセスしたり、csvファイルにデータを書き込んだりすることが必要になることがよくあります。 csv ファイル内のデータを dict 型と DataFrame に直接読み取るのは非常に便利で、手間がかかりません。次のコードは例として iris データを使用します。

csvファイルは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]

output

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

として読み込まれます。読み込んだ各データを個別に処理する必要があり、データ量が多い場合は、それぞれを1つずつ処理してから配置することをお勧めしますそれは入っています。

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

dict 型のデータを複数個 csv ファイルに書き込みます

コード

#   数据
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()

データの量が多く、データの量を確認したい場合、上記のコードはデータ全体を csv ファイルに書き込みます。リアルタイムで書き込まれる場合は、writerows 関数を使用できます。

DataFrame に CSV ファイルを読み込みます

Code

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

少しひねることもできます:

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 は CSV ファイルを書き込みます

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

以上がPythonのcsv形式ファイルの読み書き方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。