1

私は次のようなテキスト データを持っています:
16/12/2006;17:24:00;1.000;17.000
最初の列は日付で、2 番目の列は時間で、いくつかのフロートが残ります。現在、次のようなファイルを読んでいます。

np.genfromtxt(path,
              dtype=(np.datetime64, np.datetime64, np.float16, np.float16),
              delimiter=';',
              converters = {0: lambda x: datetime.datetime.strptime(x, "%d/%m/%Y"),
                            1: lambda x: datetime.datetime.strptime(x, "%H:%M:%S")})

これは、2 番目の列のデフォルトの日付が 1900 年 1 月 1 日に設定されているという非常に基本的な問題につながります。ファイルの読み取り中またはファイルの読み取り後に、最初の 2 つの列の日付と時刻を組み合わせる方法はありますか。

4

1 に答える 1

2

プレーンな Python コマンドを使用してそれを読み取り、結合されたフィールドを自分で作成することができます。次に、必要に応じて、コンバーターをその上で実行できます。

from datetime import datetime

fp = open("test.dat", "r")
lines = [ line.split(";") for line in fp.readlines() ]
fp.close()
fulldates = [ " ".join(line[0:2]) for line in lines if len(line) > 1 ]
converted = [ datetime.strptime(date, "%d/%m/%Y %H:%M:%S")
              for date in fulldates ]

fulldatesリストには、結合されたデータ + 時間フィールドのリストが含まれます。リストconvertedには、初期化された日時オブジェクトが含まれます。(ファイル内の最終的な空の行を処理するためだけにフィルターを追加しましたif len(line) > 1。ファイルに何も含まれていない場合は、省略できます。)

于 2013-02-03T21:29:16.360 に答える