Pandas:如何按时间戳选择 dataframe 行


您可以使用以下基本语法来选择 pandas DataFrame 中两个时间戳之间的行:

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

此语法假定tstamp已经具有日期时间类型。

如果没有,您可以使用以下语法将其转换为日期时间列:

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

以下示例展示了如何在实践中使用此语法。

示例:按时间戳选择 Pandas DataFrame 行

假设我们有以下 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

假设我们只想选择以下两个时间戳之间的行:

  • 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

请注意,仅选择我们指定的两个时间戳之间的行。

另请注意,您可以仅使用日期值按时间戳选择行。

例如,我们可以使用以下代码来选择时间戳大于 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 中的日期
如何将 Pandas 中的列转换为日期时间
如何按日期对 Pandas DataFrame 进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注