IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

2015-09-01から1ヶ月間の記事一覧

HaskellのEitherとeither

Eitherという型がありますが、eitherという関数もあります。 Either型 Data.Either Prelude> :i Either data Either a b = Left a | Right b -- Defined in `Data.Either' instance (Eq a, Eq b) => Eq (Either a b) -- Defined in `Data.Either' instance M…

Haskellで例外処理の初歩

import System.Environment (getArgs) import Control.Exception (catch, SomeException) main :: IO () main = do args <- getArgs out <- catch (readFile $ head args ) (\_ -> return "error") print out test$ runghc test02.hs test02.hs1 test02.hs:1…

Haskellでコマンドライン実行で引数をとる

getArgsを使う import System.Environment (getArgs) main :: IO () main = do args <- getArgs print args test$ runghc test02.hs [] test$ runghc test02.hs a ["a"] test$ runghc test02.hs a b ["a","b"] test$ runghc test02.hs ab ["ab"] test$ rungh…

Pandasのgroupbyの結果をDateFrameにする

groupbyでは、groupieオブジェクトが返却されるが、DataFrameが欲しいときがある。その場合は、as_index=Falseを指定する。 In [70]: type(df.groupby(['項目1','項目2'],as_index=False).agg(np.average)) Out[70]: pandas.core.frame.DataFrame stackoverf…

PandasのDataFrameの嵌りどころ

データフレームから複数条件で行を絞るとき df[df['項目1']==0 and df['項目2']==1] df[df['項目1']==0 & df['項目2']==1] df[(df['項目1']==0) and (df['項目2']==1)] 上記3つはいずれも下記のエラーが出る。 ValueError: The truth value of a Series is …

Pythonでピボットテーブル

件数を数える。 import pandas df = pandas.read_csv(CSVファイル) df[[項目1,項目2]].pivot_table(index=項目1, columns=項目2, aggfunc=len) 単に1項目のみの件数を求めるなら、groupbyを使うよりvalue_countsのほうが手軽。 import pandas df = pandas.re…

matplotlibでヒストグラム

数値データとカテゴリデータではやり方が若干異なる。 $ ipython --version 3.2.0 %matplotlib inline import pandas df = pandas.read_csv(対象データファイル) # 数値項目のヒストグラムの作成 # binsで幅を調整する df['数値項目'].hist(bins=999) #カテ…

matplotlibとggplotを使ってみる

# ライブラリのインポート import pandas # データの読み込み df = pandas.read_csv('foo.csv') # 必要なデータに絞る df2 = df[['x','y']] # x軸を分類する df2['x_rank'] = df2['x'].apply(lambda x : int(x / 1000)) # matplotlibのインポート import mat…