データフレームの構造
データフレームの作成と要素アクセス。
>>> 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()