たそらぼ

日頃思ったこととかメモとか。

pandas分析虎の巻

データを見る際にpandasでよく使う操作を、しょっちゅう忘れるのでまとめておきます。

虎の巻自体は以下にあります。
github.com

準備

今回はirisデータを使います。
これはsklearnに入っています。

from sklearn.datasets import load_iris
iris = load_iris()
iris.data


#array([[ 5.1,  3.5,  1.4,  0.2],
#      [ 4.9,  3. ,  1.4,  0.2],
#      ....
#       [ 6.5,  3. ,  5.2,  2. ],
#       [ 6.2,  3.4,  5.4,  2.3],
#       [ 5.9,  3. ,  5.1,  1.8]])

また、データフレームとグラフ描写などで以下があると良いでしょう。

import bumpy as np
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

データフレームの操作

#データフレーム化
iris_pd = pd.DataFrame(iris.data)

#カラム名の付け替え
iris_pd.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']

#データフレームの一部の表示
iris_pd.head()
iris_pd.tail()

f:id:tasotasoso:20200202200244p:plain:w350
DataFrame.head()の結果

データの概観の確認

#要約統計量
iris_pd.describe()

f:id:tasotasoso:20200202220612p:plain:w350
DataFrame.describe()の結果

#型、nullの有無のチェック
iris_pd.info()

#<class 'pandas.core.frame.DataFrame'>
#RangeIndex: 150 entries, 0 to 149
#Data columns (total 4 columns):
#sepal_length    150 non-null float64
#sepal_width     150 non-null float64
#petal_length    150 non-null float64
#petal_width     150 non-null float64
#dtypes: float64(4)
#memory usage: 4.8 KB


#nullの個数を数える
iris_pd.isnull().sum()

#sepal_length    0
#sepal_width     0
#petal_length    0
#petal_width     0
#dtype: int64


#nullを埋める
iris_pd.fillna(value = 1)

データの分布の確認

自分は散布図とヒストグラムでの確認が多いです。

#散布図
sns.set(style='darkgrid')
sns.scatterplot(data=iris_pd, x='sepal_length', y='petal_length')
plt.show()

#または
iris_pd.plot.scatter(x='sepal_length', y='petal_length')
plt.show()

f:id:tasotasoso:20200202221016p:plain:w350
散布図の例

#ヒストグラム
sns.distplot(iris_pd["sepal_length"], kde=False, rug=True, bins=10)
plt.show()

#分布付きのヒストグラムの例
sns.distplot(iris_pd["sepal_length"])
plt.show()

f:id:tasotasoso:20200202221712p:plain:w350
ヒストグラムの例

f:id:tasotasoso:20200202221739p:plain:w350
分布付きのヒストグラムの例