📅  最后修改于: 2023-12-03 15:33:23.382000             🧑  作者: Mango
在使用 Pandas 进行数据处理的时候,经常需要按照日期来筛选数据。在 Pandas 中,可以使用日期相关的函数来获取指定日期范围内的行数据。
Pandas 中可以使用 pd.date_range()
函数来生成时间索引,然后使用 .loc
或 .iloc
来选取指定日期范围内的行数据。
import pandas as pd
# 创建数据
dates = pd.date_range(start='2021-01-01', end='2021-01-31', freq='D')
df = pd.DataFrame({'date': dates, 'value': range(len(dates))})
# 选取指定日期范围内的行数据
start_date = pd.to_datetime('2021-01-10')
end_date = pd.to_datetime('2021-01-20')
df.loc[(df['date'] >= start_date) & (df['date'] <= end_date)]
这里使用 pd.date_range()
函数生成所有日期,然后将日期和数值组成一个 Pandas DataFrame。然后使用 .loc
来筛选指定日期范围内的行数据。
我们也可以使用 .iloc
来选取指定行号范围内的行数据。例如,我们可以按照以下方式来选取 2021-01-10
到 2021-01-20
之间的数据:
start_index = df[df['date'] == start_date].index[0]
end_index = df[df['date'] == end_date].index[0]
df.iloc[start_index:end_index+1]
Pandas 中使用 .loc
或 .iloc
可以轻松地选取指定日期范围内的行数据。同时,在使用这些函数之前,我们需要通过 pd.date_range()
函数来生成时间索引。