Python pandas の基本的な使い方

データ分析を支援する機能を提供するライブラリ。Pandas
データ構造と演算を提供する

  • データ入出力機能
  • 欠損値の処理
  • データ一部取り出し
  • 統計処理
import pandas as pd
df = pd.DataFrame( [[1,2,3],[4,5,6]],columns=['Col1','Col2','Col3'])
df
Col1 Col2 Col3
0 1 2 3
1 4 5 6

列名のリストを引数で指定することができます。

import numpy as np
df3 = pd.DataFrame(np.random.randn(10,4),columns=list('ABCD'))
df3

A B C D
0 0.053599 0.970625 0.973680 0.738540
1 1.686028 0.403347 0.227747 -0.650716
2 0.531546 0.890382 -0.023111 -1.106372
3 0.554472 0.909319 1.829014 1.499118
4 0.999721 -1.995413 0.242910 -0.200620
5 -1.116534 0.218292 -0.372836 0.421913
6 1.355396 0.299101 1.853839 -1.226628
7 -2.765584 -0.443040 0.666124 -1.614065
8 1.026023 -1.204470 0.529418 -2.005070
9 -0.169653 -0.448783 0.539643 -0.966560

先頭の5行のデータを見たいときは、head()を使います。

df3.head()
A B C D
0 0.053599 0.970625 0.973680 0.738540
1 1.686028 0.403347 0.227747 -0.650716
2 0.531546 0.890382 -0.023111 -1.106372
3 0.554472 0.909319 1.829014 1.499118
4 0.999721 -1.995413 0.242910 -0.200620

行と列を入れ替えたい時は、Tを使うと良いです。

df3.T
0 1 2 3 4 5 6 7 8 9
A 0.053599 1.686028 0.531546 0.554472 0.999721 -1.116534 1.355396 -2.765584 1.026023 -0.169653
B 0.970625 0.403347 0.890382 0.909319 -1.995413 0.218292 0.299101 -0.443040 -1.204470 -0.448783
C 0.973680 0.227747 -0.023111 1.829014 0.242910 -0.372836 1.853839 0.666124 0.529418 0.539643
D 0.738540 -0.650716 -1.106372 1.499118 -0.200620 0.421913 -1.226628 -1.614065 -2.005070 -0.966560

列でソートする場合は、以下のようにsort_valuesを使用します。

df3.sort_values(by='B')
A B C D
4 0.999721 -1.995413 0.242910 -0.200620
8 1.026023 -1.204470 0.529418 -2.005070
9 -0.169653 -0.448783 0.539643 -0.966560
7 -2.765584 -0.443040 0.666124 -1.614065
5 -1.116534 0.218292 -0.372836 0.421913
6 1.355396 0.299101 1.853839 -1.226628
1 1.686028 0.403347 0.227747 -0.650716
2 0.531546 0.890382 -0.023111 -1.106372
3 0.554472 0.909319 1.829014 1.499118
0 0.053599 0.970625 0.973680 0.738540

A列だけのデータを抽出したい場合は、以下のようにします。

df3['A']
0    0.053599
1    1.686028
2    0.531546
3    0.554472
4    0.999721
5   -1.116534
6    1.355396
7   -2.765584
8    1.026023
9   -0.169653
Name: A, dtype: float64
df4 =pd.DataFrame([[1.0,2.0,3],[4.0,None,6.0]],columns=list('ABC'))
df4
A B C
0 1.0 2.0 3.0
1 4.0 NaN 6.0
'''
pandas を使用することで、htmlの内部の表データを取得することができます。
'''
import requests
import pandas as pd 
html = requests.get('http://www.lighthouse-w5.com/python/anaconda/sample.html')

tables = pd.read_html( html.text)
table = tables[0]
table


No 商品名 値段
0 1 PC 1000
1 2 デジカメ 2000
2 3 プリンタ 1000