プログラミングに役立つ情報をメモしています
Python

pandasの使い方まとめ

pandasとは?

pandasはデータの操作や解析を行うためのPythonのライブラリです。

素のPythonでもリストやディクショナリでも同じ操作を行うことはできますが、大きなデータを扱う場合はpandasというライブラリを利用するのが一般的です。

pandasはアメリカのWeb McKinney氏によって2008年に開発されました。
名前の由来は統計学におけるパネル・データ(panel data)という用語だそうです。

基本的な使い方は以下の通りです。

パッケージインポート

データフレームを作る

0 1 2
0 1 2 3
1 4 5 6

1 2 3
0 1 1 2
1 3 2 4

A
0 4
1 5
2 6
3 7

City
Aichi Nagoya
Kyoto Kyoto
Osaka Osaka
Tokyo Shinjuku

行・列数を取得する

a b c d
0 4 5 6 7
1 4 5 6 7
2 4 5 6 7

(3, 4)
行数: 3
列数: 4
行数: 3
列数: 4

行、列を指定してデータを選択する(loc, iloc, at)

loc,iloc,atにインデックス(行)、カラム(列)の順で添え字を指定することで目的のデータを取得できます。
iloc, iatはカラムを数値で指定します。

apple
orange
grape
pineapple

行の範囲、列を指定してデータを選択する

name price
0 apple 100
1 orange 200
2 grape 140
3 pineapple 120

name price
2 grape 140
3 pineapple 120

price
0 100
1 200
2 140
3 120

インデックスを指定して、特定のデータを取得する

name price
0 apple 100
1 orange 200
2 grape 140
3 pineapple 120

price of grape: 140

データを追加する

price
name
apple 100
orange 200

price
name
apple 100
orange 200
strawbelly 500

列を追加する

name price location
0 apple 100 Aomori
1 orange 200 Ehime

loc[]を使ってデータを書き換える

name price
0 apple 100
1 orange 300

行・列を削除する

name price
0 apple 100
1 orange 200
name
0 apple
1 orange
name
1 orange

重複を削除する

name price
0 apple 100
1 orange 200
2 apple 105
name price
1 orange 200
2 apple 105

カラム名(列名)を変更する

name quantity
0 apple 100
1 orange 200

データを置き換える(単純置換・正規表現)

Region Speciality
0 Osaka Okonomiyaki\nI like it.
1 Tokyo Monja\r\nI like it.
2 Aichi Misokatsu\r\nI hate it.
Region Speciality
0 Osaka Okonomiyaki
I like it.
1 Tokyo Monja
I like it.
2 AIchi Misokatsu
I hate it.

ピボットテーブル(pivot_table)

生徒の点数を、クラス別、性別ごとに集計し、平均点を出してみる、といった操作も簡単です。

class name score sex
0 A yamada 100 Male
1 A sato 80 Male
2 B takahashi 40 Female
3 B takeda 70 Female
4 A kishi 90 Male

score
class sex
A Male 90
B Female 55

行をイテレートする

Score of yamada = 100
Score of sato = 80
Score of takahashi = 40
Score of takeda = 70
Score of kishi = 90