如何在Pandas中基于日期过滤数据框架行

  • Post category:Python

在Pandas中基于日期过滤数据框架行的操作步骤如下:

  1. 准备数据

首先需要准备一个数据集,其中包含日期列。例如,我们创建一个包含日期列、销售数量列和总销售额列的数据集。

import pandas as pd

# 创建数据集
data = {'日期': pd.date_range('20210101', '20210110'),
        '销售数量': [32, 15, 27, 46, 19, 23, 35, 28, 12, 17],
        '总销售额': [3200, 1500, 2700, 4600, 1900, 2300, 3500, 2800, 1200, 1700]}

df = pd.DataFrame(data)
print(df)

输出结果:

         日期  销售数量  总销售额
0 2021-01-01    32  3200
1 2021-01-02    15  1500
2 2021-01-03    27  2700
3 2021-01-04    46  4600
4 2021-01-05    19  1900
5 2021-01-06    23  2300
6 2021-01-07    35  3500
7 2021-01-08    28  2800
8 2021-01-09    12  1200
9 2021-01-10    17  1700
  1. 筛选日期

接下来,我们可以使用Pandas的条件筛选功能来得到想要的日期数据。例如,如果我们需要筛选1月1日到1月5日的数据,可以使用如下代码:

df[(df['日期'] >= '20210101') & (df['日期'] <= '20210105')]

df['日期'] >= '20210101'df['日期'] <= '20210105'的结果都是一个布尔值的Series,分别表示“日期”列的值是否大于等于‘20210101’,以及是否小于等于‘20210105’。这两个Series之间使用&符号表示“与”的逻辑关系,将两个Series合并成一个,实现按照日期筛选数据的功能。

输出结果:

         日期  销售数量  总销售额
0 2021-01-01    32  3200
1 2021-01-02    15  1500
2 2021-01-03    27  2700
3 2021-01-04    46  4600
4 2021-01-05    19  1900
  1. 根据日期范围筛选

如果我们需要根据日期范围进行筛选,可以使用Pandas的索引功能来实现。例如,如果我们需要筛选1月4日至1月8日的数据,可以先将“日期”列设置为数据集的索引,然后使用loc方法进行筛选。

# 将“日期”列设置为索引
df.set_index('日期', inplace=True)

# 根据日期范围筛选数据
df.loc['20210104':'20210108']

输出结果:

            销售数量  总销售额
日期                     
2021-01-04    46  4600
2021-01-05    19  1900
2021-01-06    23  2300
2021-01-07    35  3500
2021-01-08    28  2800

在以上代码中,df.set_index('日期', inplace=True)将“日期”列设置为数据集的索引。df.loc['20210104':'20210108']根据索引中的日期范围进行筛选。

总之,Pandas提供了丰富的筛选和索引功能,可以方便地进行基于日期的数据筛选和操作。