福岡は今日も雨

情報系大学生のブログ。主に技術,音楽について。

ファイル入出力のあれこれ(pandas編)

pandasはデータを扱うためのライブラリである.
テキストファイルやらデータベースとの入出力が簡単にできる. 今まで見てきたcsv, excel, hdf5なども取り扱うことができる.
read_...()という形なのでインターフェースもわかりやすい.

pandasが優れているところは, 欠損データだったり意味のないスペースなどのファイルの異常にも対応できるということである.
なお, 大規模計算にはhdf5が最速でデータを読み書きできるのでそちらを利用するほうが良いとのこと.

今回のデータがこれ.

# テストデータ 2016/1/10, encode=utf-8
time;status;高度;速度
0;search;125
0.1;search;1012.5; 128.5;
0.2;lock;1035.3; 130.5987
0.3;lock;1068.365; 135.45
0.4;lock;1090.2; NaN

こんな形でデータがある. これを整形していくことを考える.
今回はutf-8で扱う. 元々の科学技術計算のためのpython入門にはcp932だったがまぁ...そこは.

(1)encodingを確かめる
utf-8なので, 普通に読む.

import pandas as pd

dat = pd.read_csv('data.csv', encoding='utf-8')

一行目を消し, デリミタとして';'を設定する.

dat = pd.read_csv('data.csv', 
                               encoding='utf-8',
                               skiprows=1,
                               seq=';'
                               )

これで概ねよくなるが, データに意味のない空白があるので, それを取り除く.

dat = pd.read_csv('data.csv',
                                encoding='utf-8',
                                skiprows=1,
                                seq=';',
                                skipinitialspace=True)

これでおめあてのデータにすることができた.