Pandas で文字列を日時形式に変換する
問題:
次の Pandas データフレームが与えられたとします。文字列の日付値を含む列の場合、これらの値を日時形式に変換するにはどうすればよいでしょうか?さらに、指定した日付の範囲に基づいて行をフィルタリングするにはどうすればよいですか?
解決策:
日時形式への変換:
Pandas で文字列を日時形式に変換するには、to_datetime 関数を使用します。一般に、パーサーは入力文字列の形式を自動的に決定できるため、明示的な形式指定の必要がなくなります。
import pandas as pd df = pd.DataFrame({'I_DATE': ['28-03-2012 2:15:00 PM', '28-03-2012 2:17:28 PM', '28-03-2012 2:50:50 PM']}) df['I_DATE'] = pd.to_datetime(df['I_DATE'])
このコードは、I_DATE 列を日時形式に変換します。出力は次のようになります:
I_DATE 0 2012-03-28 14:15:00 1 2012-03-28 14:17:28 2 2012-03-28 14:50:50
日付コンポーネントへのアクセス:
変換後、日付、時刻、日などの個々の日付コンポーネントにアクセスできます。 、dt アクセサーを使用します。例:
# Get the date only df['I_DATE'].dt.date # Get the time only df['I_DATE'].dt.time
日付範囲に基づいて行をフィルタリング:
日付の範囲に基づいて行をフィルタリングするには、次の構文を使用します:
df[(df['date'] > 'start_date') & (df['date'] < 'end_date')]
たとえば、日付が「2015-02-04」の間にある行をフィルターするにはおよび '2015-02-10':
df[(df['date'] > '2015-02-04') & (df['date'] < '2015-02-10')]
以上がPandas で文字列日付を Datetime オブジェクトに変換し、日付範囲でフィルターする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。