初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

pandas~ファイル編~

前書き

久しぶりの更新となりました。今回は、ファイル操作について説明します。

csvファイルで保存

pandasは、to_csv()を使うことにより、DataFrame型やSeries型をcsvファイルとして保存できます。

  • pd.to_csv(file): file引数には、保存したい場所へのパスとファイル名を与えます。
# to_csv.py
import pandas as pd

df = pd.DataFrame([['一', '二', '三'], ['one', 'two', 'three'], ['eins', 'zwei', 'drei']], index=['日本語', '英語', 'ドイツ語'], columns=[1, 2, 3])

print(df)

df.to_csv('number.csv') # 同じディレクトリにnumber.csvファイルが作成される
# 実行結果
     1     2      3
日本語      一     二      三
英語     one   two  three
ドイツ語  eins  zwei   drei

f:id:tiginkgo:20180521205418p:plain
ターミナルでの実行結果(lsはディレクトリに存在するファイルとディレクトリを確認するコマンド)

上記の実行結果より、csvファイルとしてデータが保存できたことがわかります。

to_csvのオプション

to_csvには、様々な引数があります。ここでは、よく使うものを紹介します。

引数 説明
index インデックスを保存するかを真偽値で指定。デフォルトはTrue。
header 列名を保存するかを真偽値で指定。デフォルトはTrue。

csvファイルの読み込み

pandasでcsvファイルを読み込むには、read_csv()を使います。

  • pd.read_csv(file): file引数には、読み込みたいcsvファイルまでのパスを与えます。返り値は、DataFrame型です。
# read_csv.py
import pandas as pd

df_1 = pd.read_csv('number.csv') 
print(df_1)

df_2 = pd.read_csv('number.csv', index_col=0, header=0) # index_colとheaderを指定
print(df_2) 
# 実行結果
# print(df_1)
  Unnamed: 0     1     2      3
0        日本語     一     二      三
1         英語   one   two  three
2       ドイツ語  eins  zwei   drei

# print(df_2)
         1     2      3
日本語      一     二      三
英語     one   two  three
ドイツ語  eins  zwei   drei

また、他のcsvファイルを試したい場合は気象庁などからダウンロードして確認してみてください。

read_csvのオプション

read_csvは、様々な引数があります。ここでは、よく使うものを紹介します。

引数 説明
sep 各行をフィールドに分割するのに用いる文字列や正規表現csvファイルなら必要ありません。例えば、tsvファイルなら'\t'を指定します。
header 列名として使う行の番号。デフォルトは0。ヘッダがない場合はNoneを指定。
index_col インデックスとして使う列の番号。デフォルトはNone
skiprows ファイルの先頭から無視する行数。デフォルトは0。
nrows ファイルの先頭で読み込む行数。
encoding Unicodeとして用いる文字コード。デフォルトは'utf-8'。

引数の補足説明をします。
例えば、skiprows=10・nrows=10とした場合は、先頭から10行飛ばしたところから10行分読み込まれます。 また、日本のサイトが提供するcsvファイルは、shift-jis形式が多いのでencodingを指定する必要があるかもしれません。上記の気象庁のサイトでは、encoding='shift-jis'と指定する必要があります。

あとがき

お疲れ様でした。これで pandasについての説明は、簡単にですが一通り終わりです。次回は、内包表記について説明します。