Python Pandas
Pandasはデータ解析を行うためのライブラリです。今回はJupyterLabを使用して動作確認していきます。
インストール
以下のコマンドで行います。
conda install pandas
実行
初期値セット
import pandas as pd
df = pd.DataFrame([
[1, 2, 3],
[1, 5, 6],
[7, 8, 9],
[10, 11, 12],
[13, 14, 15],
[16, 17, 18]], columns=['a', 'b', 'c'])
df
a b c
0 1 2 3
1 1 5 6
2 7 8 9
3 10 11 12
4 13 14 15
5 16 17 18
指定カラムだけ処理する場合
df[['a', 'b']]
a b
0 1 2
1 1 5
2 7 8
3 10 11
4 13 14
5 16 17
新しいカラムに値をセット
df['d']= df['a'] * df['b']
df
a b c d
0 1 2 3 2
1 1 5 6 5
2 7 8 9 56
3 10 11 12 110
4 13 14 15 182
5 16 17 18 272
カラム削除
df2 = df.drop(['c', 'd'], axis=1)
df2
a b
0 1 2
1 1 5
2 7 8
3 10 11
4 13 14
5 16 17
データの先頭部分を表示。デフォルト5行で引数に行数を指定できる
df.head()
a b c d
0 1 2 3 2
1 1 5 6 5
2 7 8 9 56
3 10 11 12 110
4 13 14 15 182
データの末尾部分を表示。デフォルト5行で引数に行数を指定できる
df.tail()
a b c d
1 1 5 6 5
2 7 8 9 56
3 10 11 12 110
4 13 14 15 182
5 16 17 18 272
データをランダムに表示。デフォルト1行で引数に行数を指定できる
df.sample(3)
a b c d
0 1 2 3 2
4 13 14 15 182
3 10 11 12 110
範囲の取得
df[['a', 'b']][0:3]
a b
0 1 2
1 1 5
2 7 8
グループ化(外部にインデックス)
df.groupby(['a', 'b'], as_index=False).mean()
a b c d
0 1 2 3 2
1 1 5 6 5
2 7 8 9 56
3 10 11 12 110
4 13 14 15 182
5 16 17 18 272
グループ化(カラムがインデックス)
df.groupby(['a', 'b']).mean()
c d
a b
1 2 3 2
5 6 5
7 8 9 56
10 11 12 110
13 14 15 182
16 17 18 272
ソート
df.sort_values(by='b', ascending=False)
a b c d
5 16 17 18 272
4 13 14 15 182
3 10 11 12 110
2 7 8 9 56
1 1 5 6 5
0 1 2 3 2
データの概要表示
df.describe()
a b c d
count 6.000000 6.000000 6.000000 6.000000
mean 8.000000 9.500000 10.500000 104.500000
std 6.196773 5.612486 5.612486 106.631609
min 1.000000 2.000000 3.000000 2.000000
25% 2.500000 5.750000 6.750000 17.750000
50% 8.500000 9.500000 10.500000 83.000000
75% 12.250000 13.250000 14.250000 164.000000
max 16.000000 17.000000 18.000000 272.000000
データの概要表示
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 a 6 non-null int64
1 b 6 non-null int64
2 c 6 non-null int64
3 d 6 non-null int64
dtypes: int64(4)
memory usage: 320.0 bytes
ページのトップへ戻る