|
发表于 2023-7-19 10:52:35
|
显示全部楼层
为了解答您的问题,我将提供一个Python代码示例来实现您的要求。在开始之前,需要确保您已经安装了所需的库,如pandas和openpyxl。您可以使用pip命令进行安装。
- import os
- import pandas as pd
- # 步骤1:读取三省站点.xlsx文件中的站号
- station_data = pd.read_excel('三省站点.xlsx')
- station_ids = station_data['站号'].tolist()
- # 步骤2:遍历MON文件夹,根据站号匹配TXT文件并转为Excel文件
- for station_id in station_ids:
- # 根据站号获取符合条件的TXT文件
- txt_files = [file for file in os.listdir('MON') if station_id[-5:] in file and file.endswith('.txt')]
-
- for txt_file in txt_files:
- # 读取TXT文件数据
- with open(os.path.join('MON', txt_file), 'r') as f:
- lines = f.readlines()
-
- # 解析TXT文件数据并创建DataFrame
- data = [line.split() for line in lines]
- df = pd.DataFrame(data, columns=['Year', 'Mon', 'Day', 'PRE'])
-
- # 将数据保存为Excel文件
- excel_file = txt_file.replace('.txt', '.xlsx')
- df.to_excel(excel_file, index=False, header=['Year', 'Mon', 'Day', 'PRE'])
- # 步骤4:遍历所有Excel文件的开始年份,并写入新的Excel文件
- start_years = {}
- for excel_file in os.listdir('.'):
- if excel_file.endswith('.xlsx'):
- df = pd.read_excel(excel_file)
- start_year = str(df['Year'].min())[:4]
- start_years[excel_file] = start_year
- # 创建包含开始年份的DataFrame并保存为新的Excel文件
- start_years_df = pd.DataFrame(list(start_years.items()), columns=['Excel文件', '开始年份'])
- start_years_df.to_excel('Starting year.xlsx', index=False)
复制代码
请确保以下事项:
1. 确保三省站点.xlsx文件位于当前工作目录下,且包含一个名为站号的列。
2. 确保MON文件夹位于当前工作目录下,并包含所有的TXT文件。
3. 执行上述代码后,将会生成多个Excel文件和一个名为Starting year.xlsx的新Excel文件。
此代码将按照您的要求遍历站号、匹配TXT文件、转换为Excel文件,然后提取每个Excel文件的开始年份,并将其写入到Starting year.xlsx中。
请注意,以上代码仅提供了实现的思路,并未经过详细测试,可能需要根据您具体的数据和需求进行适当的修改。希望对您有所帮助!如有任何问题,请随时追问。 |
|