|  | 
 
| 
import pandas as pd
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 # 读取3.xlsx和R95.xlsx文件
 df1 = pd.read_excel('3.xlsx')
 df2 = pd.read_excel('R95.xlsx')
 
 # 初始化一个字典来存储匹配的总和
 rizi_sums = {}
 
 # 将flood_start_date和drought_end_date列转换为日期时间格式
 df1['flood_start_date'] = pd.to_datetime(df1['flood_start_date'])
 df1['drought_end_date'] = pd.to_datetime(df1['drought_end_date'])
 
 # 遍历df1中的每一行
 for index, row in df1.iterrows():
 start_date = row['flood_start_date']
 end_date = row['drought_end_date']
 num = row['NUM']  # 获取当前事件的序号
 
 # 确定start_date前两个月的年份和月份
 start_year = start_date.year
 start_month = start_date.month - 2
 if start_month < 1:
 start_month += 12
 start_year -= 1
 
 # 确定end_date后两个月的年份和月份
 end_year = end_date.year
 end_month = end_date.month + 2
 if end_month > 12:
 end_month -= 12
 end_year += 1
 
 # 创建日期范围
 if start_year == end_year:
 dates_range = pd.date_range(start=start_date - pd.DateOffset(months=2),
 end=end_date + pd.DateOffset(months=2),
 freq='M')
 else:
 dates_range = pd.date_range(start=start_date - pd.DateOffset(months=2),
 end=end_date + pd.DateOffset(months=14),
 freq='M')
 
 # 计算对应月份的rizi列内容的总和
 mask = df2['Mon'].isin(dates_range)
 RIZI_sum = df2.loc[mask, 'RIZI'].sum()  # 计算总和
 
 # 将总和与NUM关联起来
 rizi_sums[num] = RIZI_sum
 
 # 将rizi_sums字典转换为DataFrame
 matched_data = pd.DataFrame(list(rizi_sums.items()), columns=['NUM', 'RIZI_sum'])
 
 # 将结果保存到新的Excel文件中
 matched_data.to_excel('matched_data.xlsx', index=False)3.xlsx中有列名为NUM的列,内容为每一个事件的序号,现要求在R95.xlsx中找出1.xlsx中start_date前两个月和end_date后两个月以及start_date和end_date之间月份对应列名为rizi列内容的总和。其中'column_name该改为什么
 | 
 |