以下是一个示例代码,演示如何保留跨多个时间范围的行:
import pandas as pd
# 创建一个示例数据集
data = {'日期': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'数值': [10, 15, 20, 25, 30]}
df = pd.DataFrame(data)
# 将日期列转换为日期时间类型
df['日期'] = pd.to_datetime(df['日期'])
# 定义时间范围
start_date1 = pd.Timestamp('2021-01-02')
end_date1 = pd.Timestamp('2021-01-04')
start_date2 = pd.Timestamp('2021-01-05')
end_date2 = pd.Timestamp('2021-01-06')
# 保留跨多个时间范围的行
df_filtered = df[(df['日期'] >= start_date1) & (df['日期'] <= end_date1) | (df['日期'] >= start_date2) & (df['日期'] <= end_date2)]
# 打印结果
print(df_filtered)
输出结果为:
日期 数值
1 2021-01-02 15
2 2021-01-03 20
3 2021-01-04 25
4 2021-01-05 30
在这个示例中,我们首先将日期列转换为日期时间类型。然后,我们定义了两个时间范围,分别是从2021年1月2日到2021年1月4日,以及从2021年1月5日到2021年1月6日。最后,我们使用逻辑运算符&
和|
来筛选出在这两个时间范围内的行,并将结果存储在df_filtered
中。