データの読み込み
csvからの読み込み
# headerなし df_none = pd.read_csv(‘data/src/sample.csv’, header=None) print(df_none) # 0 1 2 3 # 0 11 12 13 14 # 1 21 22 23 24 # 2 31 32 33 34 # header 指定 df_names = pd.read_csv(‘data/src/sample.csv’, names=('A', 'B', 'C', 'D')) print(df_names) # A B C D # 0 11 12 13 14 # 1 21 22 23 24 # 2 31 32 33 34
pandasでcsv/tsvファイル読み込み(read_csv, read_table) | note.nkmk.me
sqliteからの読み込み
import sqlite3 from contextlib import closing with closing(sqlite3.connect(“database_path”)) as conn: df = pd.read_sql_query(“query”, conn)
データの取得
column名(header)の取得
df.columns
書き込み
sqliteへの書き込み
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html
pandas で sqlite3 の読み書き – Qiita
変換
data frame,seriesをlistに変換
df.values.tolist() ser.values.tolist()
unix timeからdatetime
pd.to_datetimeを使う。
Unit引数でもとがどういう粒度のデータなのか指定する。
http://024minion.hatenablog.jp/entry/2017/12/29/021448
ローソク足チャートの作成
生データからの取得
pandas dataframeのresampleを使用する
https://note.nkmk.me/python-pandas-resampling-ohlc/
columnがMultiIndexになったときの再設定
Resample関数などを使用するとcolumnがネストしたMultiIndexになるときがある。
Df.columnsに再代入すればネストを削除できる。
aggdf: pd.DataFrame = dataframe.resample(agg_unit).agg({“value”: “ohlc”, “quantity”: “sum”, “ts”: “size”}).fillna(0) aggdf.columns = [I[1] for I in aggdf.columns]
時間ごとの集計
resample関数を作成する。
dataframeの各列へのresample
https://stackoverflow.com/a/42938645
seriesへのresample
https://financial-it-engineer.hatenablog.com/entry/20161116/1479283739
例外対応
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of ‘RangeIndex’
- resample関数のときにでた
- dataframeのindexを DatetimeIndexに変更すれば解決した
- resampleは日付でしか集計できないっぽい
DataError: No numeric types to aggregate
- resample関数のときに出た
- 集計対象のデータをnumericにしたら解決
- 集計対象がobjectとかだと集計できない
View Comments