ライブラリ【Pandas】について
PandasとNumpyの違い
表にまとめると以下のようになります。
データ加工のしやすさ | 処理の速さ | 得意な処理 | |
---|---|---|---|
Pandas | 比較的簡単、SQLライクにデータ加工が可能 | Numpyと比較して遅い | 欠損値処理、データ整形、他のデータベースとのアクセス、時系列データの扱い |
Numpy | 比較的難しい、headerが設定されていない配列のため | Pandasと比較して高速 | 数値演算、特に行列演算 |
Pandasの使い方
Pandasはimportすることで利用することができるライブラリです。
import pandas as pd
importとはモジュール、パッケージ、ライブラリを使うための魔法のようなものと考えてOK
モジュール、パッケージ、ライブラリの違いについては以下のブログで解説しています
DataFrameとは
Pandasを利用するとき、データの型をDataFrameという型に変換してデータを利用します。
例えばcsvのファイルを扱いたいときは、pandasのread_csv()関数を使ってDataFrameに変換してからデータの加工を行います。
データフレームの変数名 = pd.read_csv('ファイルのパス')
ここでの注意点としては、DataFrameは一行目がカラム名として認識されます。
カラム名に該当する行が存在しない点を明記し、新たにカラム名を指定する方法は以下のように記載します。
import pandas as pd
df = pd.read_csv('example.csv', header=None, names=['店舗','商品名','価格','個数'] )
print(df)
出力結果例
店舗 商品 価格 個数
0 A banana 200 1
1 B orange 400 2
2 C orange 350 1
3 A grape 100 2
4 B banana 250 3
5 B peach 150 3
DataFrameで扱える文字コードについて
DataFrameではUTF-8をデフォルトで使用するため、他の文字コードが使用されているファイルの場合文字化けを起こしてしまう可能性があります。
そのため、encodingで文字コードを指定してあげる必要があります。
文字コードを指定した時の例
import pandas as pd
df = pd.read_csv('example_Shift_jis.csv', encoding = "shift-jis")
print(df)
この場合shift-jisの文字コードが扱われている場合には、DataFrameでもshift-jisを使用するということになります。
Excelを読み込む場合
PandasではExcelファイルも読み込めるようになっています。
read_excel('ファイル名','シート名')でどのシートをDataFrameとして読むのかを指定することができます。
df = pd.read_excel('example.xlsx', 'Sheet1')
CSVやExcelファイルとして書き出す
Pandasでは加工したDataFrameのデータをcsvもしくはExcelファイルとしてエクスポートすることができます。
dfというインスタンスで格納されているデータをexample_sub.csvファイルとしてエクスポートします。ファイル名同時にパスも指定します。
df.to_csv('/local/example_sub.csv')
ちなみにExcelの場合は以下のようなコードになります
df.to_excel('example_sub.xlsx', index = False, header = False)
Seriesとは
PandasではDataFrameと同様Seriesというデータの持ち方もします。
DataFrameは行と列の2次元でデータを持つのに対して、Seriesでは1列の1次元のデータを持つという特徴があります。
言い換えれば、DataFrameはSeriesから構成されているとも言えます。
Seriesの取り扱いについては以下の記事で説明しています!
Discussion