本文へスキップ
67 views
B!0X

pandasメモ

pandas-memo

データの読み込み

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とかだと集計できない

関連事例

  • データ分析支援

    事例:過去実績を提案に活用する分析の仕組み

    広告代理店との取り組みです。同社は過去実績の示唆を次の提案へ反映し、結果をどのように予測したか、その背景まで提案先のクライアントへ説明できるようになりました。KDOT は案ごとの見込みと判断材料を比較できる仕組みを業務アプリとして実装しました。さらに業務アプリの中核となる処理ロジックと機械学習モデルについて、特許手続きを担う弁理士が技術の新規性や工夫を検討するための資料を作成しました。その後この発明には特許が付与されました。

  • データ基盤構築 / 技術顧問(技術企業向け)

    事例:効果検証の分析処理基盤

    効果検証を提供する分析会社との取り組みです。同社は分析者の人数に比例してしか売上と利益を伸ばせない事業の形を、効果検証をプロダクトとして提供することで変革しようとしていました。手法とモデルは同社のまま、社内では開発できなかった、データと機械学習の重い推定を製品として動かす仕組みの開発を、開発支援会社の KDOT に任せました。推定を案件ごとの手作業ではなくシステムで実行できるようになったことで、同社は人数に比例しない形で売上と利益を伸ばすことを目指せるようになりました。

開発の相談先をお探しですか。

この記事に関わることについてご相談がある方はお問い合わせください。

KDOT についてお問い合わせ