データ分析では、csv形式ファイルのデータにアクセスしたり、csvファイルにデータを書き込んだりすることが必要になることがよくあります。 csv ファイル内のデータを dict 型と DataFrame に直接読み取るのは非常に便利で、手間がかかりません。次のコードは例として iris データを使用します。
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为每条数据的处理函数
コード
# 数据 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 関数を使用できます。
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)
dfrme.to_csv('E:/dst.csv', index=False) # 不要每行的编号
以上がPythonのcsv形式ファイルの読み書き方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。