データ分析を支援する機能を提供するライブラリ。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 |
列名のリストを引数で指定することができます。
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 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 |