Submit Search
Upload
最初はExcelでいけると思ってたけど途中からしんどくなってきたデータのためのPython Pandas (複数インデックス編)
•
Download as PPTX, PDF
•
0 likes
•
257 views
S
Study Group by SciencePark Corp.
Follow
勉強会で発表した資料。 https://sciencepark.connpass.com/event/118853/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 22
Download now
Recommended
CuPyでAx=bを解きたかった話
CuPyでAx=bを解きたかった話
kiyoshiiriemon
Quine
Quine
京大 マイコンクラブ
Incanterの紹介
Incanterの紹介
mozk_
Path Decompositionを用いたメモリ効率の良い動的キーワード辞書の実装法(ポスター)
Path Decompositionを用いたメモリ効率の良い動的キーワード辞書の実装法(ポスター)
Shunsuke Kanda
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
Study Group by SciencePark Corp.
YOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですか
Study Group by SciencePark Corp.
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
Study Group by SciencePark Corp.
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
Study Group by SciencePark Corp.
Recommended
CuPyでAx=bを解きたかった話
CuPyでAx=bを解きたかった話
kiyoshiiriemon
Quine
Quine
京大 マイコンクラブ
Incanterの紹介
Incanterの紹介
mozk_
Path Decompositionを用いたメモリ効率の良い動的キーワード辞書の実装法(ポスター)
Path Decompositionを用いたメモリ効率の良い動的キーワード辞書の実装法(ポスター)
Shunsuke Kanda
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
Study Group by SciencePark Corp.
YOLOとご一緒にPandasはいかがですか
YOLOとご一緒にPandasはいかがですか
Study Group by SciencePark Corp.
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
新入社員の俺がDeepLearningのコードを書いてみたら神検出率だった件
Study Group by SciencePark Corp.
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
Study Group by SciencePark Corp.
ドライバへのETWの埋め込み
ドライバへのETWの埋め込み
Study Group by SciencePark Corp.
JTAGを使ってみよう
JTAGを使ってみよう
Study Group by SciencePark Corp.
JTAG入門
JTAG入門
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
Study Group by SciencePark Corp.
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
Study Group by SciencePark Corp.
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
Study Group by SciencePark Corp.
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Study Group by SciencePark Corp.
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
Study Group by SciencePark Corp.
MacOS10.15への対応について
MacOS10.15への対応について
Study Group by SciencePark Corp.
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
Study Group by SciencePark Corp.
リモートでの勉強会参加方法
リモートでの勉強会参加方法
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
Study Group by SciencePark Corp.
No.2 超初心者向け セキュリティ入門
No.2 超初心者向け セキュリティ入門
Study Group by SciencePark Corp.
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
Study Group by SciencePark Corp.
01.超初心者向けセキュリティ入門
01.超初心者向けセキュリティ入門
Study Group by SciencePark Corp.
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Study Group by SciencePark Corp.
無線通信にて遠隔操作を行うVRトラッキングカメラ
無線通信にて遠隔操作を行うVRトラッキングカメラ
Study Group by SciencePark Corp.
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Study Group by SciencePark Corp.
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
More Related Content
More from Study Group by SciencePark Corp.
ドライバへのETWの埋め込み
ドライバへのETWの埋め込み
Study Group by SciencePark Corp.
JTAGを使ってみよう
JTAGを使ってみよう
Study Group by SciencePark Corp.
JTAG入門
JTAG入門
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
Study Group by SciencePark Corp.
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
Study Group by SciencePark Corp.
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
Study Group by SciencePark Corp.
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Study Group by SciencePark Corp.
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
Study Group by SciencePark Corp.
MacOS10.15への対応について
MacOS10.15への対応について
Study Group by SciencePark Corp.
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
Study Group by SciencePark Corp.
リモートでの勉強会参加方法
リモートでの勉強会参加方法
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
Study Group by SciencePark Corp.
No.2 超初心者向け セキュリティ入門
No.2 超初心者向け セキュリティ入門
Study Group by SciencePark Corp.
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
Study Group by SciencePark Corp.
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
Study Group by SciencePark Corp.
01.超初心者向けセキュリティ入門
01.超初心者向けセキュリティ入門
Study Group by SciencePark Corp.
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Study Group by SciencePark Corp.
無線通信にて遠隔操作を行うVRトラッキングカメラ
無線通信にて遠隔操作を行うVRトラッキングカメラ
Study Group by SciencePark Corp.
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Study Group by SciencePark Corp.
More from Study Group by SciencePark Corp.
(20)
ドライバへのETWの埋め込み
ドライバへのETWの埋め込み
JTAGを使ってみよう
JTAGを使ってみよう
JTAG入門
JTAG入門
初心者向けデバイスドライバ講座(6)
初心者向けデバイスドライバ講座(6)
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
02.超初心者向けセキュリティ入門(IoT)
02.超初心者向けセキュリティ入門(IoT)
06.超初心者向けセキュリティ入門(.netの解析と対策)
06.超初心者向けセキュリティ入門(.netの解析と対策)
Visual StudioでWixをビルドしてみた
Visual StudioでWixをビルドしてみた
MacOS10.15への対応について
MacOS10.15への対応について
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
リモートでの勉強会参加方法
リモートでの勉強会参加方法
初心者向けデバイスドライバ講座 (2)
初心者向けデバイスドライバ講座 (2)
No.2 超初心者向け セキュリティ入門
No.2 超初心者向け セキュリティ入門
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
初心者向けデバイスドライバ講座(1)
初心者向けデバイスドライバ講座(1)
01.超初心者向けセキュリティ入門
01.超初心者向けセキュリティ入門
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
Azure DevTestLabsはデスクトップアプリ開発のテストを楽にしてくれる
無線通信にて遠隔操作を行うVRトラッキングカメラ
無線通信にて遠隔操作を行うVRトラッキングカメラ
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Recently uploaded
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Recently uploaded
(9)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
最初は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 now