2016-08-09 3 views
2

私はcvsファイルから自分のデータを読んでいる間に日付を解析しようとしています。私が使用するコマンドは、pandasで 'csv'ファイルを読み取っているときに日付時刻を解析します

df = pd.read_csv('/Users/n....', names=names, parse_dates=['date'])​) 

です。これは一般的に自分のファイルを処理しています。 しかし、私はさまざまな日付形式のデータセットを持っています。つまり、日付形式は(09/20/15 09:59​)のようになりますが、他の形式の別の形式は同じファイル内に(2015-09-20 10:22:01.013​)のようなものです。そして、私が上に書いたコマンドは、これらのファイルでは動作しません。それは私が(parse_dates = ['日付'])を削除するときに働いているが、私はdatetime形式として日付の列を使用することはできませんその時間、それは整数としてその列を読み取ります。私は誰もそれに答えることができて感謝します!このよう

+0

このようにしてみてください: 'df = pd.read_csv( '/ Users/n ....'、names = names); df ['date'] = pd.to_datetime(df ['date']) ' – MaxU

答えて

2

df = pd.read_csv(file, names=names) 
df['date'] = pd.to_datetime(df['date']) 
3

パンダread_csvは、あなた自身の日付解析関数を定義することができdate_parser引数を受け入れます。たとえば、あなたのケースでは、単純にできる2つの異なる日時フォーマットがあります。

import datetime 

def date_parser(d): 
    try: 
     d = datetime.datetime.strptime("format 1") 
    except ValueError: 
     try: 
      d = datetime.datetime.strptime("format 2") 
     except: 
      # both formats not match, do something about it 
    return d 

df = pd.read_csv('/Users/n....', 
       names=names, 
       parse_dates=['date1', 'date2']), 
       date_parser=date_parser) 

これらの日付は、これらの列のさまざまな形式で解析できます。

関連する問題