統計

Pandas データフレーム

データフレームの構造

データフレームの作成と要素アクセス。

>>> import pandas as pd

>>> df = pd.DataFrame([10,20,30,40],
...                   columns=['numbers'],
...                   index = ['a','b','c','d'])
>>> df
   numbers
a       10
b       20
c       30
d       40
>>> df.index
Index(['a', 'b', 'c', 'd'], dtype='object')
>>> df.columns
Index(['numbers'], dtype='object')
>>> df.loc['b']
numbers    20
Name: b, dtype: int64
>>> df.iloc[1:3]
   numbers
b       20
c       30
>>> 
関数
DataFrame()
columns
index
loc
iloc
sum()
apply(lamda x: some expression)
mean()
std()

データフレームにデータを追加する

新しいカラムを作成して、データを追加する。

>>> df['floats'] = (1.5,2.5,3.4,4.8)
>>> df
   numbers  floats
a       10     1.5
b       20     2.5
c       30     3.4
d       40     4.8
>>> 
 

 新しい行に要素を追加する。

>>> df.append({'numbers':100,'floats':5.9},ignore_index=True)
<stdin>:1: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
   numbers  floats
0     10.0     1.5
1     20.0     2.5
2     30.0     3.4
3     40.0     4.8
4    100.0     5.9
>>> 

append()メソッドは将来のバージョンでは使用できなくなるとのことです。代わりに以下のメソッドconcat()を使います。

データフレームから平均値と標準偏差を取得する

 メソッドmean()を用いて平均値を導出します。メソッドstd()は標準偏差を導出します。

import pandas as pd

>>> df
   numbers  floats
a       10     1.5
b       20     2.5
c       30     3.4
d       40     4.8
>>> df[['numbers','floats']]
   numbers  floats
a       10     1.5
b       20     2.5
c       30     3.4
d       40     4.8
>>> df[['numbers','floats']].mean()
numbers    25.00
floats      3.05
dtype: float64
>>> df[['numbers','floats']].std()
numbers    12.909944
floats      1.401190
dtype: float64
>>> 

データフレームのデータをNumPyの配列に変換する

PandasのデータフレームのデータをNumPyの配列のデータに変換する。

import pandas as pd
import numpy as np

dt = np.dtype(np.float)
pddata = np.array(df['cls'],dtype=dt)
date = np.array(df['date'])

csvファイルをデータフレームに読み込む

csv形式のファイルをPandasのデータフレームに読み込みます。

import pandas as pd
import numpy as np

df = pd.read_csv(filepath)

データフレームをcsvファイルに書き込む

データフレームをcsvファイルに保存します。

import pandas as pd

filepath = "../data/fcst/" + fname
fcst = df.to_csv(fpath,index=None)

データフレームのサイズを取得する

Pandasデータフレームのサイズを取得します。

import pandas as pd

sh = dataset.shape
column = sh[0]
rows = sh[1]

データフレームの末尾を取得する

データフレームの末尾を取得します。

result = df.tail()

データフレームの先頭を取得する

データフレームの先頭のデータを取得します。

result = df.head()

データフレームのインデックスの更新する

データセットの一部を新しいデータセットとして作成し、indexを更新します。

df2 = dataset[id:]
df2.index = dataset.index - id

Dict型のデータを取得してPandasデータフレームを作成する

dictデータをDBから取得し、データフレームを作成します。

import pandas as pd
 
cursor = db[collection].find({"ticker":symbol,"date":{"$gt":d}})
df = pd.DataFrame.from_dict(list(cursor)).astype(object)

データフレームから無効データ(na)を削除する

要素の削除

import pandas as pd

df['cls'].dropna()

-統計
-