barilog

エンジニアリング見習い雑記

DataFrameに関数を適応したいとき

sinhrks.hatenablog.com

 

こちらを参照した.

基本的に各列,各行に関数を適応したいときは

DataFrame.apply

というようにDataFrameのメソッドのひとつであるapplyメソッドを使えば良い

 

・各列に対して関数を適応したいとき

DataFrame.apply(関数)

 

・各行に対して関数を適応したいとき

dataframe.apply(関数, axis=1)

 

 

 

map関数を使うのは賢明ではありません.

map(method, DataFrame)

で得られるものはデータフレームではなく,mapオブジェクトです.

 

a = map(sample_method, sample_df)

print(type(a))

# 結果 map

python処理を早くするために

1.単純なfor文の代わりにmapまたはリスト内包表記で代用しよう

2.SQLクエリを何度も実行するのはやめよう

3.オブジェクトへの参照回数はなるべく減らそう

4.データフレームの読み書きにはcsvではなくpickleを使おう

 

まず1について.

utgwkk.hateblo.jp

 

これによると関数を呼び出す際はひとまずmapをつかっとくのが無難っぽい.

 

次に4について

yutori-datascience.hatenablog.com

 

これによるとこれはcsvの読み込みの早さはdask ≒ pickle >>read_csv

daskは使っと事ないからわからんので私のような雑魚はpickleをつかおう.

ただし,pickleだとメモリに全部一気に展開がされてしまうので,大きなデータサイズのcsvを読む場合だと他の処理如何でメモリリークが起こりそう.一行ずつ処理したり,並列で処理できるようにするのが理想だよね.. 

 

arXiv ACL2018に参加した

最初の論文

Probabilistic FastText for Multi-Sense Word Embeddings

 

pffmswe.png

Sentence-State LSTM for Text Representation

 

センテンスのベクトル表現を獲得する手法

Takanori Nakai, Data scientist at D2c | SlideShare

のスライドが参考になる

 

知識ベースの情報を組み込んだ

Effective Pythonのまとめ

pythonコードを綺麗に書く方法を学ぶために、こちらの本を借りました。

Effective pythonです。

 

項目1: 使っているPythonのバージョンを知っておく

項目2: PEP8スタイルガイドに従う

項目3: bytes, str, unicodeの違いを知っておく

項目4: 複雑な式の代わりにヘルパー関数を書く

こちらを参照

Effective Pyhton メモ 項目4 複雑な式の代わりにヘルパー関数を書く

 

項目5: シーケンスをどのようにスライスするか知っておく

項目6: 一つのスライスでは,start, end, strideを使わない

項目7: