てつまぐとは?

pandasを使ったCSVファイルの読み込み方法と書み込み方法

pythonでは機械学習やデータ解析をすることが多いため、CSVの読み込みなどの操作は必須となります。

データ読み込めなければ、解析もできないのでとても大事です。

データの読み込みでも便利なpandasというライブラリを使っていきます。

pandasは他にもデータベースからもデータが取得できますので、pythonでは必須ライブラリの1つです。

pandasについて

pandasは表データの取り扱いに特化したライブラリです。

以下のようなことができます。

できること

データの読み込み書き込み

データ同士の結合

データの欠損値補完などの加工

インストール

他のライブラリと同じくpipを使ってインストールします

dataframeについて

pandasではdataframeという型を使います。

DataFrameは以下の3つの構成となっています。

3つの構成

  1. columns(列名)
  2. index(行名)
  3. values(値)

pandasではこのようなデータベースや、エクセルなどの表データを取り扱うのが得意なライブラリです。

ライブラリの読み込み

pandasを使うときは下記を実行します。

pandasをpdとして読み込みます。

CSVの読み込み

下記のCSV(sample.csv)を読み込んでいきます。

sample

上記リンクのファイルをコードと同じ場所に保存してください。

右クリックで保存できます。

読み込み

読み込みにはread_csvメソッドを使います。

一番シンプルな使い方は、df = pd.read_csv(‘ファイルのパス’)です。

しかし、エラーが出てしまいます。

英語のみのファイルであれば良いですが、日本語を含む場合は、文字コードを気にする必要があります。

pythonのドキュメントの標準エンコーディングがそのリストになります。

今回は日本語対応の「cp932」を使います。

引数に、encoding=’cp932′を追加します。

エラーもなく読み込めました。

データ数確認

読み込んだデータ数を確認しましょう。

shapeを使います。

(行数, 列数)で表示されます。

データ確認

データ確認するメソッドがいくつかあります。

メソッド 機能
head データの先頭を確認。引数に確認したいデータ数を入力、省略時は5つ表示。
tail データの末尾を確認。引数に確認したいデータ数を入力、省略時は5つ表示。
info 列名や型を確認
describe 統計値を確認

headを確認してみましょう。

4行しかないので、4行がそのまま表示されます。

赤枠の箇所が、DataFrameのIndex(行名)になります。

CSVには無いIndexが自動で追加されていますが、そういうものなので気にしないでおきましょう。

他のメソッドは各自で動かしてみてください。

色々な読み込み

列名とデータがある、よく見るデータを読み込みましたが、列名がなかったり、データの開始位置がズレていたりする場合があります。

次のようなデータの読み込みを見ていきましょう。

列名のないデータ

下記のような列名のないデータは、header=Noneとすることで読み込むことができます。

sample2

上記リンクをダウンロードして、実行してください。

headerは列名の開始位置になるのですが、Noneとすることで「ないよ」ということです。

列名がない場合は、0,1,2と自動で割り当てられます。

列名は引数にnames=列名のlistを渡すことで列名をつけることができます。

開始位置がずれているデータ

下記のように、行数をずらして読み込みたい場合は、引数にheader=列名の開始行数を指定します。

sample3

上記リンクをダウンロードして実行してください。

行数は0からカウントするので、今回であれば、header=3とします。

読み込めましたが、データの1行目が列名になってしまっています。

4行目に列名があればOKでしたが、今回のデータはないので、一つ上の行を選びつつ、列名を渡します。

これで列名を含んだデータを取得できました。

読み込み列の指定

列が多い場合、読み込みたい列だけを読み込むこともできます。

usecolsの引数を使っていきます。csvはsampleを読んでいきます。

usecols=列名リストを与えることで、指定した列だけを取得できます。

CSVの書き込み

書き込みも読み込みと同様に、文字コード、header、indexの有無を引数に渡しながら、書き込みます。

書き込みにはto_csvメソッドを使います。

ファイルパスでファイル名のみを指定すると、コードと同じフォルダに保存されます。

先程、列名を指定して読み込んだので、書き込む前にsample.csvを読み込んでおきます。

引数は読み込みと同じで、よく使うのは下記3つです。

引数 機能 初期値(省略時)
encoding 文字コードを指定 utf-8
header 列名を書き込むかどうか True
省略時は列名がつく
index 行名を書き込むかどうか True
省略時は行名がつく

日本語を含むので、ecoding=’cp932’で列名あり、行名なしで書き込みます。

コードと同じフォルダにoutput.csvが出力されます。

列名を指定して書き込む

データ処理などを色々していると、余計な列ができていくため、必要な列のみを保存したい場合があります。

その場合は、columns=対象の列名リストを引数に渡します。

列が絞られて、保存されます。

まとめ

pythonでは機械学習やデータ解析をすることが多いため、CSVの読み込みなどの操作は必須となります。

pandasを使用した表データの取り扱いに慣れていきましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です