ライブラリ【Pandas】について

2023/06/24に公開

PandasとNumpyの違い

表にまとめると以下のようになります。

データ加工のしやすさ 処理の速さ 得意な処理
Pandas 比較的簡単、SQLライクにデータ加工が可能 Numpyと比較して遅い 欠損値処理、データ整形、他のデータベースとのアクセス、時系列データの扱い
Numpy 比較的難しい、headerが設定されていない配列のため Pandasと比較して高速 数値演算、特に行列演算

Pandasの使い方

Pandasはimportすることで利用することができるライブラリです。

import pandas as pd

importとはモジュール、パッケージ、ライブラリを使うための魔法のようなものと考えてOK

モジュール、パッケージ、ライブラリの違いについては以下のブログで解説しています
https://zenn.dev/delacroix/articles/e3f62ca001deb0

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の取り扱いについては以下の記事で説明しています!
https://zenn.dev/delacroix/articles/8783488fcf36bf

Discussion