Pandas基礎の基礎
記事の目的
pandasは、テーブルデータの処理に特化したpythonのモジュールです。ここでは、pandasの基本的な使い方を、備忘録として整理しました。
1. データの取り込み
試しに、以下のようなcsvファイルを読み込んでみます。
test.csv
テスト
番号,名前,年齢,身長,性別
1,タカシ,65,178.2,男
2,ヨシミ,33,165.1,女
3,ジロウ,18,180.2,男
4,サブロウ,15,160.3,男
データの取り込みには、pandas.read_csv( ) もしくは、pandas.read_table( )を使います。この二つの関数、デフォルトの区切り文字が異なるだけで、その他の中身は同じのようです。
read_data.py
import pandas as pd
#
data=pd.read_table( "test.csv",
skiprows=1,#スキップ行数の指定
delimiter=",",#区切り文字の指定
header=0,#ヘッダー行数の指定
index_col=0,#見出し列数の指定
)
print(data)
read_table関数の引数は49個あるようですが、よく使いそうな引数は以下の4つくらいかなと思っています。
skiprows | delimiter | header | index_col |
---|---|---|---|
スキップする行数を指定 | 区切り文字を指定 | ヘッダの行番号を指定(スキップ分は除く) | 見出しの列番号を指定 |
実行結果は、以下のような感じです。csvのテーブルがそのまま読み込まれています。
実行結果
名前 年齢 身長 性別
番号
1 タカシ 65 178.2 男
2 ヨシミ 33 165.1 女
3 ジロウ 18 180.2 男
4 サブロウ 15 160.3 男
2. データの切り出し
任意の列のデータの切り出しは、切り出したい列のヘッダ名のリストを指定するだけです。
test=data[["名前","年齢"]]
print(test)
実行結果
名前 年齢
番号
1 タカシ 65
2 ヨシミ 33
3 ジロウ 18
4 サブロウ 15
また、ilocを用いて、切り出したい範囲を指定することもできます。
test=data.iloc[1:3,0:2] #1行目~2行目、0列目~1列目を切り出し
print(test)
実行結果
名前 年齢
番号
2 ヨシミ 33
3 ジロウ 18
特定の条件を満たすデータを抽出することもできます。
test=data[data["性別"]=="男"]
print(test)
実行結果
名前 年齢 身長 性別
番号
1 タカシ 65 178.2 男
3 ジロウ 18 180.2 男
4 サブロウ 15 160.3 男
3.データの可視化
pandasのデータフレームは、matplotlibによる可視化も簡単にできます。
import matplotlib.pyplot as plt
import japanize_matplotlib
data.plot(kind="hist")
plt.show()
かなり便利です!!