import numpy as np
from pandas import Series,DataFrame
import pandas as pd
arr = np.array([[1,2,np.nan],[np.nan,3,4]])
dframe1 = DataFrame(arr,index=['A','B'],columns = ['One','Two','Three'])
dframe1
# 合計を求めるsumの動きを確認しましょう。
#行方向に計算が進むので、列の合計が見られます。
dframe1.sum()
#行の合計を求めたいときは、列方向(axis=1)で計算
dframe1.sum(axis=1)
# 最小値を求める。
dframe1.min()
# 最小値を保持しているindexを調べられます。
dframe1.idxmin()
# maxでも同じことができます。
dframe1
# 累積を求めることができます。
dframe1.cumsum()
# DataFrameの全体像を簡単に見ることができます。
dframe1.describe()
# 共分散(covariance)と相関(correlation)
# 英語ですが、次の動画が参考になります。
from IPython.display import YouTubeVideo
# 共分散の説明(英語)
YouTubeVideo('xGbpuFNR1ME')
# 相関の説明(英語)
YouTubeVideo('4EXNedimDMs')
# 株価のデータを使って、共分散と相関をみていきましょう。
# PandasはWebからデータをとってくることも可能です。
import pandas.io.data as pdweb
# 日付を扱うために、datetimeをimportします。
import datetime
# 米国のYahooのサービスを使って、株価を取得します。
# すべて石油関連会社
# CVX シェブロン、XOM エクソンモービル、BP 英BP
prices = pdweb.get_data_yahoo(['CVX','XOM','BP'],
start=datetime.datetime(2010, 1, 1),
end=datetime.datetime(2013, 1, 1))['Adj Close']
prices.head()
# 出来高(何株売買されたか)のデータも取れます
volume = pdweb.get_data_yahoo(['CVX','XOM','BP'],
start=datetime.datetime(2010, 1, 1),
end=datetime.datetime(2013, 1, 1))['Volume']
volume.head()
# 変化の割合を計算できます。
rets = prices.pct_change()
rets.head()
# まず、単純な株価の変化を描画してみます。
%matplotlib inline
prices.plot()
import seaborn as sns
import matplotlib.pyplot as plt
# 予想通りの相関が見られます。
sns.heatmap(rets.corr())
# seabornについては、後ほど詳しく学習します。
ser1 = Series(['w','w','x', 'y', 'z' ,'w' ,'w' ,'x' ,'x' ,'y' ,'a' ,'z' ])
ser1
# 重複するデータをまとめられます。
ser1.unique()
# それぞれのデータがいくつあるかもわかります。
ser1.value_counts()