【Python】气象数据与站点信息合并

original_excel_path :气象数据
station_info_path:站点数据
目标,merge数据和站点,加上经度纬度和海拔高度
(批量,每个original sheet)

02各sheet加经纬度.py

import pandas as pd

# Replace with your actual file paths
original_excel_path = 'original_excel.xlsx'
station_info_path = 'station_info.xlsx'
output_excel_path = 'output_excel.xlsx'

# Read the station info Excel file from Sheet1
station_info_df = pd.read_excel(station_info_path, sheet_name='Sheet1')

# Function to update station data in each sheet
def update_station_data(sheet_df):
    # Merge the sheet data with station info based on '站号'
    merged_df = pd.merge(sheet_df, station_info_df, how='left', left_on='站号', right_on='站号')
    return merged_df

# Read each sheet from the original Excel file, update station data, and save to a new Excel file
with pd.ExcelWriter(output_excel_path, engine='xlsxwriter') as writer:
    # Iterate over sheets in the original Excel file
    for sheet_name, sheet_df in pd.read_excel(original_excel_path, sheet_name=None).items():
        # Update station data for each sheet
        updated_sheet_df = update_station_data(sheet_df)
        
        # Save the updated data to a new sheet
        updated_sheet_df.to_excel(writer, sheet_name=sheet_name, index=False)

# Print a message
print(f"Data has been saved to {output_excel_path}")

还要去掉降水或气温任意一个为-99999的站点,进一步修改代码

import pandas as pd

# Replace with your actual file paths

original_excel_path = 'original_excel.xlsx'
station_info_path = 'station_info.xlsx'
output_excel_path = 'output_excel.xlsx'


# Read the station info Excel file from Sheet1
station_info_df = pd.read_excel(station_info_path, sheet_name='Sheet1')


# Function to update station data in each sheet
def update_station_data(sheet_df):
    # Merge the sheet data with station info based on '站号'
    merged_df = pd.merge(sheet_df, station_info_df, how='left', left_on='站号', right_on='站号')

    # Remove rows where '降水量' or '平均气温' is -99999
    merged_df = merged_df[(merged_df['降水量'] != -99999) & (merged_df['平均气温'] != -99999)]

    return merged_df


# Read each sheet from the original Excel file, update station data, and save to a new Excel file
with pd.ExcelWriter(output_excel_path, engine='xlsxwriter') as writer:
    # Iterate over sheets in the original Excel file
    for sheet_name, sheet_df in pd.read_excel(original_excel_path, sheet_name=None).items():
        # Update station data for each sheet
        updated_sheet_df = update_station_data(sheet_df)

        # Save the updated data to a new sheet
        updated_sheet_df.to_excel(writer, sheet_name=sheet_name, index=False)

# Print a message
print(f"Data has been saved to {output_excel_path}")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值