|
发表于 2024-4-11 19:09:05
|
显示全部楼层
首先,我们需要使用pandas库读取和处理Excel文件。然后,我们可以使用datetime库来进行日期和时间的计算。
下面是实现这个功能的代码:
- import pandas as pd
- from datetime import datetime, timedelta
- # 读取1.xlsx中的数据
- df1 = pd.read_excel('1.xlsx')
- # 读取2.xlsx中的数据
- df2 = pd.read_excel('2.xlsx')
- # 转换日期格式为datetime类型
- df1['flood_start_date'] = pd.to_datetime(df1['flood_start_date'])
- df1['drought_end_date'] = pd.to_datetime(df1['drought_end_date'])
- # 创建一个空的DataFrame来存储结果
- result = pd.DataFrame()
- # 遍历1.xlsx中的每一行
- for index, row in df1.iterrows():
- # 获取起始日期和结束日期
- start_date = row['flood_start_date']
- end_date = row['drought_end_date']
- # 计算前两个月的起始日期和结束日期
- start_date_prev = start_date - timedelta(days=2 * 30)
- end_date_prev = end_date - timedelta(days=2 * 30)
- # 根据前两个月的起始日期和结束日期筛选2.xlsx中的数据
- filtered_data = df2[(df2['Year'] >= start_date_prev.year) & (df2['Year'] <= end_date_prev.year) &
- (df2['Mon'] >= start_date_prev.month) & (df2['Mon'] <= end_date_prev.month) &
- (df2['Day'] >= start_date_prev.day) & (df2['Day'] <= end_date_prev.day)]
- # 将筛选出的数据添加到结果中
- result = result.append(filtered_data, ignore_index=True)
- # 打印结果
- print(result)
复制代码
请注意,上述代码假设`1.xlsx`和`2.xlsx`文件与代码文件在同一目录下。如果不在同一目录下,请指定正确的文件路径。
此代码通过遍历`1.xlsx`中的每一行,并根据其起始日期和结束日期计算前两个月的起始日期和结束日期。然后,在`2.xlsx`中筛选出处于该时间范围内的数据,并将其添加到结果DataFrame中。最后,打印结果DataFrame。
希望能帮到你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|