Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
pandas によるデータ加工時の
注意点やライブラリの話
Masashi Shibata
October 10 2015, PyCon JP 2015
@c_bata_
明石高専 専攻科
akashi.py 主催
PyCon APAC/Taiwan 2015
BePROUD で Django
研究で pandas ← 今日はこれ
データ分析に対するイメージ
色々計算して結果が数値
問題の切り分けが困難
バグの存在に気がつきにくい
ユニットテスト
最低限、テストに記述された振舞いは満たすはず
ある程度、怪しい箇所の予測ができそう
それでもおかしい
テストケースに漏れがある?
デバッガを使ってみたけど原因は分からず
テストケースに漏れがある?
デバッガを使ってみたけど原因は分からず
それでもおかしい
対象データの一部に変な値が混ざってた
何故気づけなかったのか
フィクスチャデータと実データは違う
ユニットテストの限界
大量の入力ファイル
デバッガの限界
pandas-validator
https://github.com/c-bata/pandas-validator
$ pip install pandas_validator
使い方
import pandas_validator as pv
class SampleDataFrameValidator(pv.DataFrameValidator):
row_num = 20
axis_x = pv.IntegerC...
使い方
import pandas as pd
df = pd.DataFrame({
'axis_x': [6, 5, 6, 3, 4, ...],
'axis_y': [3, 2, 5, 1, 9, ...],
'speed': [3.2,...
わかったこと
ユニットテストやデバッガでは検出が困難
DataFrame はイレギュラーな値を許容
データが正しいとは限らない
今後やりたいこと
DataFrame の構造を明示的に記述
Django のように Fixture データの生成など
Sprint!
with @sinhrks
pandas コードリーディング
PR を送っていこう
Upcoming SlideShare
Loading in …5
×

pandasによるデータ加工時の注意点やライブラリの話

16,887 views

Published on

PyCon JP 2015 Lightning Talk

Published in: Technology
  • Dating for everyone is here: ❤❤❤ http://bit.ly/36cXjBY ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ http://bit.ly/36cXjBY ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

pandasによるデータ加工時の注意点やライブラリの話

  1. 1. pandas によるデータ加工時の 注意点やライブラリの話 Masashi Shibata October 10 2015, PyCon JP 2015
  2. 2. @c_bata_ 明石高専 専攻科 akashi.py 主催 PyCon APAC/Taiwan 2015 BePROUD で Django 研究で pandas ← 今日はこれ
  3. 3. データ分析に対するイメージ 色々計算して結果が数値 問題の切り分けが困難 バグの存在に気がつきにくい
  4. 4. ユニットテスト 最低限、テストに記述された振舞いは満たすはず ある程度、怪しい箇所の予測ができそう
  5. 5. それでもおかしい テストケースに漏れがある? デバッガを使ってみたけど原因は分からず
  6. 6. テストケースに漏れがある? デバッガを使ってみたけど原因は分からず それでもおかしい 対象データの一部に変な値が混ざってた
  7. 7. 何故気づけなかったのか フィクスチャデータと実データは違う ユニットテストの限界 大量の入力ファイル デバッガの限界
  8. 8. pandas-validator https://github.com/c-bata/pandas-validator $ pip install pandas_validator
  9. 9. 使い方 import pandas_validator as pv class SampleDataFrameValidator(pv.DataFrameValidator): row_num = 20 axis_x = pv.IntegerColumnValidator('axis_x', min_value=0, max_value=10) axis_y = pv.IntegerColumnValidator('axis_y', min_value=0, max_value=10) speed = pv.FloatColumnValidator('speed', min_value=0) pressure = pv.FloatColumnValidator('pressure', min_value=0, max_value=1) validator = SampleDataFrameValidator()
  10. 10. 使い方 import pandas as pd df = pd.DataFrame({ 'axis_x': [6, 5, 6, 3, 4, ...], 'axis_y': [3, 2, 5, 1, 9, ...], 'speed': [3.2, 3.5, 3.3, 3.7, 3.2, ...], 'pressure': [0.2, 0.2, 0.1, 0.7, 0.6, ...] }) validator.is_valid(df) # True.
  11. 11. わかったこと ユニットテストやデバッガでは検出が困難 DataFrame はイレギュラーな値を許容 データが正しいとは限らない
  12. 12. 今後やりたいこと DataFrame の構造を明示的に記述 Django のように Fixture データの生成など
  13. 13. Sprint! with @sinhrks pandas コードリーディング PR を送っていこう

×