ホームページ  >  記事  >  バックエンド開発  >  pd.to_datetime() を使用して Pandas の日付と時刻の列を効率的に組み合わせるにはどうすればよいですか?

pd.to_datetime() を使用して Pandas の日付と時刻の列を効率的に組み合わせるにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-16 14:01:03317ブラウズ

How to efficiently combine date and time columns in Pandas with pd.to_datetime()?

Pandas の日付と時刻の列を pd.to_datetime() と組み合わせる

Pandas で日付と時刻のデータを操作する場合、多くの場合、これが必要になります。別々の列を単一の日時オブジェクトに結合します。これを行う 1 つの方法は、pd.to_datetime() 関数を使用することです。

問題ステートメント

次のように、「Date」列と「Time」列を持つデータフレームを考えます。以下に示す:

Date      Time
01-06-2013  23:00:00
02-06-2013  01:00:00
02-06-2013  21:00:00
02-06-2013  22:00:00
02-06-2013  23:00:00
03-06-2013  01:00:00
03-06-2013  21:00:00
03-06-2013  22:00:00
03-06-2013  23:00:00
04-06-2013  01:00:00

私たちの目標は、これら 2 つの列を 1 つの「日付と」に結合することです。

文字列連結を使用した解決策

1 つの方法は、'Date' 列と 'Time' 列を文字列として連結し、結果の文字列を文字列に変換することです。 pd.to_datetime() を使用した datetime オブジェクト:

result = pd.to_datetime(df['Date'] + ' ' + df['Time'])

これは、

format パラメータを使用した解決策

または、pd.to_datetime() の format パラメータを使用して、正確な形式を指定することもできます。結合された文字列の:

result = pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y %H:%M:%S')

このアプローチは、特に大規模な文字列を扱う場合、前のアプローチよりも高速です。 datasets.

パフォーマンスの比較

%%timeit マジック コマンドを使用すると、両方のアプローチのパフォーマンスを比較できます。

df = pd.concat([df for _ in range(1000000)]).reset_index(drop=True)

%timeit pd.to_datetime(df['Date'] + ' ' + df['Time'])

%timeit pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y %H:%M:%S')

2 番目format パラメーターを使用したアプローチは、大規模なデータセットの場合に大幅に高速になります。

以上がpd.to_datetime() を使用して Pandas の日付と時刻の列を効率的に組み合わせるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。