Edited at

NumPyでテキスト形式の時系列データ読み込み

More than 1 year has passed since last update.


TL;DR

genfromtxtメソッドの使い方メモ


読み込み対象のフォーマット


data.csv

日時,列A,列B,データ1,データ2

2017/10/9 0:10,日本語,Eng,0,1


読み込み用サンプルコード

import numpy as np

from datetime import datetime as dt

def main():
str2date = lambda x: dt.strptime(x.decode("utf8"), '%Y/%m/%d %H:%M')
str2utf8 = lambda x: x.decode("utf8")

data = np.genfromtxt("data.csv", delimiter=",", skip_header=1,
dtype=[('col1', dt), ('col2', 'U16'), ('col3', 'S16'), ('col4', 'f'), ('col5', 'f')],
converters={0:str2date, 1:str2utf8})

print( data )

if __name__ == '__main__':
main()


出力

(datetime.datetime(2017, 10, 9, 0, 10), '日本語', b'Eng',  0.,  1.)


ポイント


空白セルの読み込み

nanになる。


dtype

読み込むすべてのカラムに対して設定する。

整数なら'i'を使う。

小数の型を'f8'といった具合に選べる。

outputとしてdatetime型が欲しければdatetimeと書けば良い。


converters

dtypeに型が無いデータはこちらが必要。

dtypeで格納するための前処理と考えればよい。


Thanks for