pandasで操作できるファイルは様々なあるが、csvはJSONと並んで取り扱うことが多いファイルである。ちょっとしたコードの検証をしたいときに毎回csvを用意して、read_csv()で読み込むのはかったるい。このような時StringIOを使うとすべてコード上で完結する。
このページの内容
- StringIOの基本情報
- StringIOとread_csv
- パラメータを変えて読み込む
StringIO
StringIOはpythonで用意されている標準オブジェクトである。
引数
- 第一引数: 文字列
戻り値
- StringIO: このオブジェクトはread_csv()に対して入力として利用できる。
StringIOとread_csv
StringIOに文字列を与えると、ファイル入出力として使える。
from io import StringIO import pandas as pd data = ('name,company,city,tel\n' 'Suzuki,CompanyA,Tokyo,090-123-456\n' 'Yamada,CompanyB,Chiba,03-123-456\n' 'Takahashi,CompanyC,Kanagawa,070-123-456') df=pd.read_csv(StringIO(data)) print(df) # name company city tel 0 Suzuki CompanyA Tokyo 090-123-456 1 Yamada CompanyB Chiba 03-123-456 2 Takahashi CompanyC Kanagawa 070-123-456
パラメータを変えて読み込む
いくつかパラメータを変えて読み込んでみる
まずはindex_colを指定して、indexを設定する。
df=pd.read_csv(StringIO(data), index_col="name") print(df) # company city tel name Suzuki CompanyA Tokyo 090-123-456 Yamada CompanyB Chiba 03-123-456 Takahashi CompanyC Kanagawa 070-123-456
usecolsを指定して、読み込む列を選ぶ。
df=pd.read_csv(StringIO(data), usecols=["name","city"]) print(df) # name city 0 Suzuki Tokyo 1 Yamada Chiba 2 Takahashi Kanagawa