Submit Search
最初はExcelでいけると思ってたけど途中からしんどくなってきたデータのためのPython Pandas (複数インデックス編)
Download as PPTX, PDF
0 likes
267 views
S
Study Group by SciencePark Corp.
勉強会で発表した資料。 https://sciencepark.connpass.com/event/118853/
Technology
Read more
1 of 22
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
More Related Content
PDF
CuPyでAx=bを解きたかった話
kiyoshiiriemon
PDF
Quine
京大 マイコンクラブ
PDF
Incanterの紹介
mozk_
PDF
Path Decompositionを用いたメモリ効率の良い動的キーワード辞書の実装法(ポスター)
Shunsuke Kanda
PPTX
R -> Python
Kazufumi Ohkawa
PDF
Intoroduction of Pandas with Python
Atsushi Hayakawa
PDF
Python for Data Anaysis第2回勉強会4,5章
Makoto Kawano
PPTX
東大生向けデータ解析講座 第2回 2017/12/29
西岡 賢一郎
CuPyでAx=bを解きたかった話
kiyoshiiriemon
Quine
京大 マイコンクラブ
Incanterの紹介
mozk_
Path Decompositionを用いたメモリ効率の良い動的キーワード辞書の実装法(ポスター)
Shunsuke Kanda
R -> Python
Kazufumi Ohkawa
Intoroduction of Pandas with Python
Atsushi Hayakawa
Python for Data Anaysis第2回勉強会4,5章
Makoto Kawano
東大生向けデータ解析講座 第2回 2017/12/29
西岡 賢一郎
Similar to 最初はExcelでいけると思ってたけど途中からしんどくなってきたデータのためのPython Pandas (複数インデックス編)
(7)
PDF
Pandas presentation
hiroyukisannomiya
PDF
2kaime
ymk0424
PDF
dplyr と purrrを用いたデータハンドリング
Somatori Keita
PPTX
PandasとSQLとの比較
iPride Co., Ltd.
PPTX
Python for Data Analysis: Chapter 2
智哉 今西
PDF
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Yasutomo Kawanishi
PDF
Introduction to NumPy & SciPy
Shiqiao Du
Pandas presentation
hiroyukisannomiya
2kaime
ymk0424
dplyr と purrrを用いたデータハンドリング
Somatori Keita
PandasとSQLとの比較
iPride Co., Ltd.
Python for Data Analysis: Chapter 2
智哉 今西
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Yasutomo Kawanishi
Introduction to NumPy & SciPy
Shiqiao Du
Ad
More from Study Group by SciencePark Corp.
(20)
PPTX
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
Study Group by SciencePark Corp.
PPTX
YOLOとご一緒にPandasはいかがですか
Study Group by SciencePark Corp.
PPTX
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
Study Group by SciencePark Corp.
PPTX
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
Study Group by SciencePark Corp.
PPTX
ドライバへのETWの埋め込み
Study Group by SciencePark Corp.
PPTX
JTAGを使ってみよう
Study Group by SciencePark Corp.
PPTX
JTAG入門
Study Group by SciencePark Corp.
PPTX
初心者向けデバイスドライバ講座(6)
Study Group by SciencePark Corp.
PPTX
ローカルストレージでの永続化キューの方式を本気で比較してみた
Study Group by SciencePark Corp.
PPTX
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
PPTX
02.超初心者向けセキュリティ入門(IoT)
Study Group by SciencePark Corp.
PPTX
06.超初心者向けセキュリティ入門(.netの解析と対策)
Study Group by SciencePark Corp.
PPTX
Visual StudioでWixをビルドしてみた
Study Group by SciencePark Corp.
PPTX
MacOS10.15への対応について
Study Group by SciencePark Corp.
PPTX
Teamsでのリモート勉強会の開き方
Study Group by SciencePark Corp.
PPTX
リモートでの勉強会参加方法
Study Group by SciencePark Corp.
PPTX
初心者向けデバイスドライバ講座 (2)
Study Group by SciencePark Corp.
PPTX
No.2 超初心者向け セキュリティ入門
Study Group by SciencePark Corp.
PPTX
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
PPTX
初心者向けデバイスドライバ講座(1)
Study Group by SciencePark Corp.
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
Study Group by SciencePark Corp.
YOLOとご一緒にPandasはいかがですか
Study Group by SciencePark Corp.
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
Study Group by SciencePark Corp.
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
Study Group by SciencePark Corp.
ドライバへのETWの埋め込み
Study Group by SciencePark Corp.
JTAGを使ってみよう
Study Group by SciencePark Corp.
JTAG入門
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(6)
Study Group by SciencePark Corp.
ローカルストレージでの永続化キューの方式を本気で比較してみた
Study Group by SciencePark Corp.
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
02.超初心者向けセキュリティ入門(IoT)
Study Group by SciencePark Corp.
06.超初心者向けセキュリティ入門(.netの解析と対策)
Study Group by SciencePark Corp.
Visual StudioでWixをビルドしてみた
Study Group by SciencePark Corp.
MacOS10.15への対応について
Study Group by SciencePark Corp.
Teamsでのリモート勉強会の開き方
Study Group by SciencePark Corp.
リモートでの勉強会参加方法
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座 (2)
Study Group by SciencePark Corp.
No.2 超初心者向け セキュリティ入門
Study Group by SciencePark Corp.
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(1)
Study Group by SciencePark Corp.
Ad
最初はExcelでいけると思ってたけど途中からしんどくなってきたデータのためのPython Pandas (複数インデックス編)
1.
最初はExcelでいけると思ってたけど途中か らしんどくなってきたデータのための Python Pandas (複数インデックス編)
2.
入力:4人の位置座標(x, y)を追跡したデータ 出力:個人間の距離と方角の時系列情報 本日のゴール
3.
a.csv b.csv c.csv d.csv 本日のゴール
4.
Aさん、Bさん、Cさん、Dさんの位置(x, y)の個別比較 A市、B市、C市、D市の気温・湿度(temp, humid)の日毎比較 A社、B社、C社、D市の売上・粗利(sales,
gp)の月毎比較 応用例 参考: 他のアプローチだと… ・平均値 (Aave, Bave, Cave, Dave)等の統計量を比較 ・相関係数(rAB, rAC, rAD, rBC, rBD ,rCD)を算出 時間変化が丸められてしまう
5.
課題 時間×対象×測値 の3次元データを扱うことになる =画面に収まらない GUIには荷が重い
6.
扱うデータ(基本の形) 第1カラム: 時刻情報 例) 動画上のフレーム番号、日付、時刻 第2カラム以降:
そのときのデータ 例) x, y座標、気温, 湿度、売上, 粗利
7.
データの追加 1 カラムを増やす方針 →横スクロールしまくる羽目になる
8.
データの追加 2 シートを増やす方針 →シートを切り替えまくる羽目になる
9.
データの追加 3 インデックスを増やす方針 →Excelのピボットテーブルを覚える羽目になる
10.
csv Pythonに(一時的に)乗り換えよう
11.
Windows10 (Excelは入ってなくてもよい) AnacondaでPython3をインストール pipでnumpyとpandasをインストール 前提とする環境
12.
pd: pandas np: numpy df:
DataFrame src: source dst: destination tar: target ここからはコピペで使えるサンプルをひたすら紹介 凡例
13.
CSVの連結 a.csv b.csv c.csv d.csv abcd.csv
14.
import pandas as
pd print('4つのデータを読み込み') a_df = pd.read_csv('./a.csv') b_df = pd.read_csv('./b.csv') c_df = pd.read_csv('./c.csv') d_df = pd.read_csv('./d.csv') print(a_df) print(b_df) print(c_df) print(d_df) …続く a.csv b.csv c.csv d.csv
15.
…続き print('memberカラムにABCDを追加してデータを連結') a_df = a_df.assign(member='A') b_df
= b_df.assign(member='B') c_df = c_df.assign(member='C') d_df = d_df.assign(member='D') dst_df = pd.concat([a_df, b_df, c_df, d_df]) print(dst_df) print('インデックスを設定してインデックスでソート') dst_df = dst_df.set_index(['frame', 'member']) dst_df = dst_df.sort_index(ascending=True) print(dst_df) dst_df.to_csv('./abcd.csv')
16.
データの取り出し
17.
import pandas as
pd src_df = pd.read_csv('./abcd.csv') src_df = src_df.set_index(['frame', 'member']) print('3フレーム目のデータだけ取り出す') dst_df = src_df.xs([3], level=[0]) print(dst_df) print('Aのデータだけ取り出す') dst_df = src_df.xs(['A'], level=[1]) print(dst_df) print('2-4フレーム目のデータだけ取り出す') dst_df = src_df.loc[pd.IndexSlice[2:4, :], :] print(dst_df) print('BとCのデータだけ取り出す') dst_df = src_df.loc[pd.IndexSlice[:, 'B':'C'], :] print(dst_df) level0 level1
18.
付き合わせ用データフレームの作成
19.
import pandas as
pd import itertools src_df = pd.read_csv('./abcd.csv') src_df = src_df.set_index(['frame', 'member']) print('組み合わせ(正確には順列)の生成') member_list = list(src_df.index.levels[1].unique()) permu = list(itertools.permutations(member_list, 2)) …続く ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'A') ('B', 'C') ('B', 'D') ('C', 'A') ('C', 'B') ('C', 'D') ('D', 'A') ('D', 'B') ('D', 'C') ['A', 'B', 'C', 'D']
20.
…続き print('突き合わせ用データフレームの作成') dst_df = pd.DataFrame() for
p in permu: from_df = src_df.xs([p[0]], level=[1]) to_df = src_df.xs([p[1]], level=[1]) permu_df = pd.DataFrame() permu_df = permu_df.assign( from_x = from_df['x'], from_y = from_df['y'], to_x = to_df['x'], to_y = to_df['y'] ) permu_df = permu_df.assign( from_member = p[0], to_member = p[1] ).reset_index().set_index(['frame', 'from_member', 'to_member']) dst_df = pd.concat([dst_df, permu_df]) dst_df = dst_df.sort_index(ascending=True) dst_df.to_csv('./permu.csv')
21.
import pandas as
pd import numpy as np import math src_df = pd.read_csv('./permu.csv') src_df = src_df.set_index(['frame', 'from_member', 'to_member']) print('2点間距離と(絶対)角度を追加') x_diff_df = src_df['from_x'] - src_df['to_x'] y_diff_df = src_df['from_y'] - src_df['to_y'] distance_df = np.sqrt(x_diff_df**2 + y_diff_df**2) angle_df = (np.arctan2(y_diff_df, x_diff_df).apply(math.degrees) + 360) % 360 dst_df = src_df.assign( distance = distance_df, theta = angle_df ) print(dst_df)
Download