read_csvでCSV,TSVファイルを読み込む / Python Pandas

 

{{DZ_TITLE}}
CSVをPandasで読込む方法。

基本形

以下の方法で、簡単に読み込むことが可能です。

import pandas as pd
df = pd.read_csv('test.csv', encoding='utf8')
df

サンプル

CSVファイルの準備「test.csv」を今回のPythonプログラムと同じフォルダに置く。

Number,Name,detail
1,Yamamoto,足が速い
2,Shinjo,御飯が大好き
3,Kawakami,水泳大好き

プログラム

import pandas as pd
df = read_csv('test.csv', encoding='utf8')
df

結果

Number Name detail
0 1 Yamamoto 足が速い
1 2 Shinjo 御飯が大好き
2 3 Kawakami 水泳大好き

パラメータ

エンコーディング 、 encoding

パラメータは読込むファイルの種類に合わせてください。
よく使うencoding

codec 説明
utf8 今、最もよく使われているユニコード系エンコーディング
cp932 MS-Windows版の拡張されたShift-JIS
shift_jis 一般的案Shift-JIS、Windows等拡張された文字は読めない
utf_8_sig UTF8のBOM付、WindowsのExcel向けに出力するときに重宝する

読み飛ばし 、 skiprows

指定行を読み飛ばすことが可能です。

import pandas as pd
df = pd.read_csv('test.csv', encoding='utf8', skiprows=[0,1])

0行目のカラム欄がスキップされているのでデータ行がヘッダーになっています。

2 Shinjo 御飯が大好き
0 3 Kawakami 水泳大好き

TSVファイル等の読込、sep

CSVのカンマの代わりに、TAB区切ったファイルをTSVと言います。
sepで区切り文字を自分で設定できます。
読込むTSVファイル

Number  Name  detail
1 Yamamoto  足が速い
2 Shinjo  御飯が大好き
3 Kawakami  水泳大好き

プログラムサンプル

import pandas as pd
pd.read_csv('test.csv', encoding='utf8',sep='\t')

文末を読み飛ばし、skipfooter

import pandas as pd
pd.read_csv('test.csv', encoding='utf8',skipfooter=6)

旧SalesforceのReport等は6行程度フッターがあった。
そのフッターを読み飛ばすのに良く使った。

読込む行数、nrows

データが大きい場合で、先頭だけ読んだりする場合に使う。

import pandas as pd
pd.read_csv('test.csv', encoding='utf8',nrows=1)

カラム名を読込時に決定する、names

import pandas as pd
df = pd.read_csv('test.csv', encoding='utf8', names=['Column1', 'Column2', 'Column3'])
df

1行目のカラム名はデータに来てしまっています。 このような場合 skiprows と組合わせて最初の行を読み飛ばす方が良いです。

Column1 Column2 Column3
0 Number Name detail
1 1 Yamamoto 足が速い
2 2 Shinjo 御飯が大好き
3 3 Kawakami 水泳大好き

型を指定して読込む 、 converters

Dict形式でカラム指定で型を決めることができる。

import pandas as pd
df = pd.read_csv('test.csv', encoding='utf8', converters={'Number':str})
df

日付型を読み込む、 parse_datesdate_parser

parse_datesにカラム名もしくはカラム番号を指定する。

import pandas as pd
df = pd.read_csv(r'test.csv', encoding='utf8', parse_dates=['Date'])

日付のフォーマットを指定する場合、date_parser をしていする。

import pandas as pd
my_date_parser = lambda date: pd.to_datetime(date, format='%Y-%m-%d %H:%M:%S')
df = pd.read_csv(encoding='utf8', parse_dates=['Date'],
                  date_parser=my_date_parser)

関連

CSVファイルの保存 to_csv
read_excelでxls、xlsxを読み込む
Python - Pandas徹底解説

おすすめ記事

Django テンプレート 使用 #2 Staticファイルの使用
Django テンプレート 使用 #2 Staticファイルの使用
JavaScript
JavaScript
PythonでSeleniumでスクレイピング時にClickでElementClickInterceptedException例外で失敗する。
PythonでSeleniumでスクレイピング時にClickでElementClickInterceptedException例外で失敗する。
Linuxでファイルを探す
Linuxでファイルを探す
文字列による条件抽出 - Python Pandas
文字列による条件抽出 - Python Pandas
to_csvでCSV,TSVファイルを書き込む / Python Pandas
to_csvでCSV,TSVファイルを書き込む / Python Pandas
Supponsered

もっとPythonを学びたいなら

Python徹底解説
Python - OpenCV徹底解説

外部サイト
↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

Comments

comments powered by Disqus