处理气象数据——2

这段代码是用来遍历指定根目录下的所有子目录和文件,读取所有以`.xls`为扩展名的Excel文件,将它们合并到一个DataFrame中,并按照指定的列(年、月、日)排序,最后将合并并排序后的数据保存到一个新的Excel文件中。

让我们逐行解析:

1. `import os`: 导入 Python 的 os 模块,用于处理文件和目录路径。
   
2. `import pandas as pd`: 导入 Pandas 库,通常用于数据处理和分析。

3. `root_directory = r'D:\气象数据'`: 设置根目录路径为`D:\气象数据`,这是存储气象数据的目录路径。

4. `all_data = pd.DataFrame()`: 创建一个空的 DataFrame,用于存储所有数据。

5. `for dirpath, dirnames, filenames in os.walk(root_directory):`: 使用`os.walk()`函数遍历指定根目录下的所有子目录和文件。`dirpath`是当前目录的路径,`dirnames`是当前目录下的子目录名列表,`filenames`是当前目录下的文件名列表。

6. `for filename in filenames:`: 在当前目录下遍历文件列表。

7. `if filename.endswith('.xls'):`: 检查文件是否以`.xls`为扩展名,如果是,则执行下面的操作。

8. `file_path = os.path.join(dirpath, filename)`: 构造文件的完整路径,使用`os.path.join()`将目录路径和文件名拼接起来。

9. `data = pd.read_excel(file_path)`: 使用 Pandas 的`read_excel()`函数读取 Excel 文件,将数据存储在名为`data`的 DataFrame 中。

10. `all_data = pd.concat([all_data, data])`: 使用`pd.concat()`函数将每个 Excel 文件中的数据合并到`all_data` DataFrame 中。

11. `sort_columns = ['年', '月', '日']`: 定义一个列表`sort_columns`,包含需要按照其进行排序的列名。

12. `all_data_sorted = all_data.sort_values(by=sort_columns)`: 使用`sort_values()`方法按照指定的列进行排序,将排序后的结果存储在`all_data_sorted`中。

13. `output_file = os.path.join(root_directory, 'merged_data.xlsx')`: 构造输出文件的路径,这里将合并后的数据保存为`merged_data.xlsx`文件,放在根目录下。

14. `all_data_sorted.to_excel(output_file, index=False)`: 使用 Pandas 的`to_excel()`方法将合并并排序后的数据保存到 Excel 文件中,`index=False`参数表示不保存行索引。

这段代码的主要作用是将指定目录下的所有 Excel 文件合并成一个,并按照年、月、日的顺序进行排序,最后保存到一个新的 Excel 文件中。

Python代码:

import os
import pandas as pd

# 指定根目录路径
root_directory = r'D:\气象数据'

# 创建一个空的DataFrame用于存储所有数据
all_data = pd.DataFrame()

# 遍历根目录下的所有子目录和文件
for dirpath, dirnames, filenames in os.walk(root_directory):
    for filename in filenames:
        if filename.endswith('.xls'):
            # 构造文件的完整路径
            file_path = os.path.join(dirpath, filename)
            # 读取Excel文件
            data = pd.read_excel(file_path)
            # 合并数据
            all_data = pd.concat([all_data, data])

# 根据指定列排序
sort_columns = ['年', '月', '日']
all_data_sorted = all_data.sort_values(by=sort_columns)

# 将合并并排序后的数据保存到新文件中
output_file = os.path.join(root_directory, 'merged_data.xlsx')
all_data_sorted.to_excel(output_file, index=False)
 

import os
import pandas as pd

# 指定根目录路径
root_directory = r'D:\气象数据'

# 创建一个空的DataFrame用于存储所有数据
all_data = pd.DataFrame()

# 遍历根目录下的所有子目录和文件
for dirpath, dirnames, filenames in os.walk(root_directory):
    for filename in filenames:
        if filename.endswith('.xls'):
            # 构造文件的完整路径
            file_path = os.path.join(dirpath, filename)
            # 读取Excel文件
            data = pd.read_excel(file_path)
            # 合并数据
            all_data = pd.concat([all_data, data])

# 根据指定列排序
sort_columns = ['年', '月', '日']
all_data_sorted = all_data.sort_values(by=sort_columns)

# 将合并并排序后的数据保存到新文件中
output_file = os.path.join(root_directory, 'merged_data.xlsx')
all_data_sorted.to_excel(output_file, index=False)

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

___Y1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值