web-dev-qa-db-ja.com

日付時刻とブール値の正しいdtypeをpandas.read_csvに指定します

CsvファイルをPandas DataFrameにロードしています。各列に対して、dtype引数を使用して、含まれるデータのタイプを指定するにはどうすればよいですか?

  • 数値データ(下部のコード)でできます...
  • しかし、どうすればtime data ...を指定できますか?.
  • およびcategorical要因やブール値などのデータ?私が試してみました np.bool_およびpd.tslib.Timestamp運が悪い。

コード:

import pandas as pd
import numpy as np
df = pd.read_csv(<file-name>, dtype={'A': np.int64, 'B': np.float64})
18
elgehelge

Read_csvには、あなたが言及したすべてのケースを処理する多くのオプションがあります。 dtype = {'A':datetime.datetime}を試してみたいと思うかもしれませんが、多くの場合、pandasは型を推測できるので、dtypeは必要ありません。

日付の場合、parse_dateオプションを指定する必要があります

parse_dates : boolean, list of ints or names, list of lists, or dict
keep_date_col : boolean, default False
date_parser : function

一般的にブール値を変換するには、指定する必要があります:

true_values  : list  Values to consider as True
false_values : list  Values to consider as False

これにより、リスト内の任意の値がブール値のtrue/falseに変換されます。より一般的な変換には、おそらく必要になるでしょう

コンバーター:dict。特定の列の値を変換するためのオプションの機能辞書。キーは整数または列ラベルのいずれかです

密集していますが、完全なリストについてはこちらをご覧ください: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html

12
Paul