Pandas:如何选择两个日期之间的行


您可以使用以下语法来选择 pandas DataFrame 中两个特定日期之间的行:

 df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

此特定示例选择 DataFrame 中 01/02/2022 到 01/06/2022 之间的所有行。

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

示例:选择 Pandas 中两个日期之间的行

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start=' 1/1/2022 ', periods= 8 ),
                   ' sales ': [18, 20, 15, 14, 10, 9, 8, 12],
                   ' returns ': [5, 7, 7, 9, 12, 3, 2, 4]})

#view DataFrame
print (df)

        date sales returns
0 2022-01-01 18 5
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3
6 2022-01-07 8 2
7 2022-01-08 12 4

我们可以使用以下语法仅选择日期 01/02/2022 和 01/06/2022 之间的行:

 #select all rows where date is between 2022-01-02 and 2022-01-06
df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

请注意,仅选择日期 2022-01-02 和 2022-01-06 之间的行。

如果需要,您还可以在Between()函数之外设置开始日期和结束日期:

 #define start and end dates
start_date = ' 2022-01-02 '
end_date = ' 2022-01-06 '

#select all rows where date is between start and end
df[df. date . between (start_date, end_date)]


              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

这会产生相同的结果。

请注意,如果您的日期列不是可识别的日期时间格式,您可能需要首先使用以下代码将其转换为日期时间格式:

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

完成此操作后,您可以使用Between()函数来选择特定日期之间的行。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 Pandas 中创建日期范围
如何从 Pandas 中的日期中提取月份
如何在 Pandas 中将时间戳转换为日期/时间

添加评论

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