Pandas で日付と時刻の列を結合するには?

DDD
リリース: 2024-11-15 19:10:03
オリジナル
737 人が閲覧しました

How to Combine Date and Time Columns in Pandas?

Pandas を使用して日付と時刻の列を結合する

時系列データを扱う場合、多くの場合、日付と時刻の列を結合して単一のデータを取得する必要があります。タイムスタンプ値。 Pandas は、pd.to_datetime() 関数など、これを実現するためのさまざまなオプションを提供します。

文字列の連結と pd.to_datetime() の使用

一部のシナリオでは、日付時間列は文字列として保存されます。それらを結合するには、次のように単純にスペースで連結します:

df['Date'] + ' ' + df['Time']
ログイン後にコピー

文字列が連結されたら、pd.to_datetime() を使用してそれらを DatetimeIndex オブジェクトに変換できます:

pd.to_datetime(df['Date'] + ' ' + df['Time'])
ログイン後にコピー

このアプローチでは、連結文字列の推論形式を利用できます。これは通常、個々の列の日付と時刻の形式の組み合わせです。

format= Parameter の使用

ただし、日付と時刻の文字列が標準化された形式ではない場合、または形式を明示的に指定したい場合は、次のように format= パラメータを使用できます。

pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y%H:%M:%S')
ログイン後にコピー

ここでは、連結された文字列の正確な形式を指定して、正確な変換を保証します。

日付を直接解析する

文字列を連結する代わりに、解析することもできます。 pd.read_csv() と parse_dates パラメータを使用して、日時情報を直接取得します。このパラメータを使用すると、日時オブジェクトとして解析する列のリストを指定できます。

たとえば、データが「data.csv」という名前の CSV ファイルに保存されている場合:

import pandas as pd

df = pd.read_csv("data.csv", parse_dates=[['Date', 'Time']])
ログイン後にコピー

この場合、Pandas は指定された列を DatetimeIndex に自動的に解析します。

パフォーマンスに関する考慮事項

大規模なデータセットを扱う場合、パフォーマンスが重要になります。文字列を連結して日付時刻に変換すると、日付と時刻の情報を直接解析するよりも大幅に時間がかかります。 %timeit マジック コマンドを使用した次のタイミング結果が示すように:

# Sample dataframe with 10 million rows
df = pd.concat([df for _ in range(1000000)]).reset_index(drop=True)

# Time to combine strings and convert to datetime
%timeit pd.to_datetime(df['Date'] + ' ' + df['Time'])

# Time to parse dates directly
%timeit pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y%H:%M:%S')
ログイン後にコピー

この結果は、特に大規模なデータセットの場合、直接解析の方が大幅に高速であることを示しています。

以上がPandas で日付と時刻の列を結合するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート