0

取得した入力データから時刻/日付の書式文字列を生成したい。これを行う簡単な方法はありますか?

私の入力データは次のようになります。

'01.12.2016 23:30:59,123'

したがって、私のコードは次のフォーマット文字列を生成する必要があります。

'%d.%m.%Y %H:%M:%S,%f'

バックグラウンド:

以前pandas.to_datetime()は、さらに処理するために日時オブジェクトを生成していました。これはうまく機能しますが、この関数は多くのデータ (>~50k) で遅くなります (dateutil.parser.parse ここで使用)。現時点では、コード内にハードコードされた上記のフォーマット文字列を提供して速度を上げていますが、to_datetime()これもうまく機能します。ここで、コード内でフォーマット文字列を生成して、入力データに関してより柔軟にしたいと考えました。

編集(最初の2つの答えが私の質問に合わないため):

日時文字列ではなく、書式文字列を生成したい。

edit2 :

質問を定式化するための新しいアプローチ: 大量のデータを含むファイルを読み込んでいます。データのすべての行には、「01.12.2016 23:30:59,123」という形式のタイムスタンプがあります。これらのタイムスタンプを日時オブジェクトに変換したいと考えています。このために、現時点では pandas.to_datetime() を使用しています。この関数は完全に機能しますが、50k を超えるデータセットを含むファイルをいくつか取得したため、遅くなります。このプロセスを高速化するために、関数 pandas.to_datetime(format='%d.%m.%Y %H:%M:%S,%f') 内でフォーマット文字列を渡しています。これによりプロセスが高速化されますが、柔軟性が低下します。したがって、最初のデータセットに対してのみフォーマット文字列を評価し、それを残りの 50k 以上のデータセットに使用したいと考えています。

これはどのように可能ですか?

4

4 に答える 4

1

infer_datetime_formatパラメータの使用を試みることができますが、注意してください - デフォルトでpd.to_datetime()使用されdayfirst=Falseます

デモ:

In [422]: s
Out[422]:
0    01.12.2016 23:30:59,123
1    23.12.2016 03:30:59,123
2    31.12.2016 13:30:59,123
dtype: object

In [423]: pd.to_datetime(s, infer_datetime_format=True)
Out[423]:
0   2016-01-12 23:30:59.123
1   2016-12-23 03:30:59.123
2   2016-12-31 13:30:59.123
dtype: datetime64[ns]

In [424]: pd.to_datetime(s, infer_datetime_format=True, dayfirst=True)
Out[424]:
0   2016-12-01 23:30:59.123
1   2016-12-23 03:30:59.123
2   2016-12-31 13:30:59.123
dtype: datetime64[ns]
于 2016-07-08T13:41:16.303 に答える
0

「datatime」を使用して日付と時刻を返します。私はこれがあなたを助けます。

import datetime
print datetime.datetime.now().strftime('%d.%m.%Y %H:%M:%S,%f')
于 2016-07-08T12:04:25.230 に答える