Menu

Pandasを使う

2018-10-08 - Pandas

Pandasとは

公式サイト: http://pandas.pydata.org/

データ解析を支援するライブラリ。
数表および時系列データを操作するためのデータ構造と演算を提供。


Pandasの使い方

DataFrame: プログラムからのデータの作成

入力

import numpy as np 
import pandas as pd 
df = pd.DataFrame([[160, 170, 180], [50, 60, 70]]) 
df 

出力

     0    1    2
0  160  170  180
1   50   60   70

type: 型を調べる

入力

type(df)

出力

pandas.core.frame.DataFrame

columns: 列に名称を付ける

入力

df.columns=["An","Jhon","Yuki"]  
df

出力

    An  Jhon  Yuki
0  160   170   180
1   50    60    70

index: 行に名称を付ける

入力

df.index = ["Height", "Weight"] 
df

出力

         An  Jhon  Yuki
Height  160   170   180
Weight   50    60    70

rename: 列の名称を変更する

入力

df = df.rename({"An":"Suzuki"}) 
df

出力

         An  Jhon  Yuki
Height  160   170   180
Weight   50    60    70

describe: データセットの基本統計情報を表示する

入力

df.describe()

出力

               An        Jhon        Yuki
count    2.000000    2.000000    2.000000
mean   105.000000  115.000000  125.000000
std     77.781746   77.781746   77.781746
min     50.000000   60.000000   70.000000
25%     77.500000   87.500000   97.500000
50%    105.000000  115.000000  125.000000
75%    132.500000  142.500000  152.500000
max    160.000000  170.000000  180.000000

データセット作成例

入力

import numpy as np 
import pandas as pd 
df = pd.DataFrame([[1, "Taro", "Sato", 100, 90], [2, "Jiro", "Miki", 80, 80], [3, "Yuki", "Kato", 60, 50]]) 
df.columns=["ID","FirstName","LastName", "English", "Chinese"]

出力

   ID FirstName LastName  English  Chinese
0   1      Taro     Sato      100       90
1   2      Jiro     Miki       80       80
2   3      Yuki     Kato       60       50

corr: 相関係数を表示

入力

df.corr()                                                                                                                                            

出力

               ID   English   Chinese
ID       1.000000 -1.000000 -0.960769
English -1.000000  1.000000  0.960769
Chinese -0.960769  0.960769  1.000000

groupby: ある列のデータでまとめる

入力

endf = df.groupby("English")                                                                                                                         
endf.mean() 

>
         ID  Chinese
English             
60        3       50
80        2       80
100       1       90

read_csv: コンマを区切り文字としたCSVファイルからのデータ読み込み

In [25]: csv1 = pd.read_csv("tab1.csv", header=None);                                                                                          

In [26]: csv1                                                                                                                                  
Out[26]: 
    0   1   2
0   1   2   3
1   4   5   6
2   7   8   9
3  10  11  12

read_table: タブ文字を区切り文字としたTSVファイルからのデータ読み込み

In [21]: tsv1 = pd.read_table("tab1.tsv", header=None);                                                                                        

In [22]: tsv1                                                                                                                                  
Out[22]: 
    0   1   2
0   1   2   3
1   4   5   6
2   7   8   9
3  10  11  12

格納したデータの操作


head

最初の2行を表示 する場合

In [20]: tsv1.head(2)                                                                                                                           
Out[20]: 
   1  2  3
0  4  5  6
1  7  8  9