パンダ: タイムスタンプによって dataframe 行を選択する方法


次の基本構文を使用して、pandas DataFrame 内の 2 つのタイムスタンプ間の行を選択できます。

 df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

この構文は、 tstamp に既に datetime 型があることを前提としています。

そうでない場合は、次の構文を使用して日時列に変換できます。

 df[' tstamp '] = pd. to_datetime (df[' tstamp '])

次の例は、この構文を実際に使用する方法を示しています。

例: タイムスタンプによる Pandas DataFrame 行の選択

小売店の売上に関する情報を含む次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' tstamp ': ['2022-10-25 04:00:00', '2022-10-25 11:55:12',
                                 '2022-10-26 02:00:00', '2022-10-27 10:30:00',
                                 '2022-10-27 14:25:00', '2022-10-28 01:15:27'],
                   ' sales ': [18, 22, 19, 14, 14, 11]})

#view DataFrame
print (df)

                tstamp sales
0 2022-10-25 04:00:00 18
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

次の 2 つのタイムスタンプ間の行のみを選択するとします。

  • 2022-10-25 04:30:00
  • 2022-10-27 11:00:00

これを行うには、次の構文を使用できます。

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows between two timestamps
df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

	tstamp sales
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14

指定した 2 つのタイムスタンプ間の行のみが選択されることに注意してください。

また、日付値のみを使用してタイムスタンプによって行を選択できることにも注意してください。

たとえば、次のコードを使用して、2022-10-27 より大きいタイムスタンプを持つすべての行を選択できます。

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows with timestamp after 2022-10-27
df[df[' tstamp '] > ' 2022-10-27 ']

	tstamp sales
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

tsamp列の値が 2022-10-27 より後の行のみが選択されることに注意してください。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

Pandas で DateTime を日付に変換する方法
Pandas で列を DateTime に変換する方法
Pandas DataFrame を日付で並べ替える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です