处理气象数据——13

import os
import shutil
import pandas as pd

# 设置原文件夹路径和新文件夹路径
original_folder_path = r'D:\qixiangshuju\西北降水_气温数据\新疆'
new_folder_path = r'D:\qixiangshuju\新疆'

# 创建新文件夹(如果不存在)
if not os.path.exists(new_folder_path):
    os.makedirs(new_folder_path)

# 获取原文件夹中所有的.xls文件
files = [file for file in os.listdir(original_folder_path) if file.endswith('.xls')]

# 循环处理每个文件
for file in files:
    file_path = os.path.join(original_folder_path, file)
    # 读取Excel文件
    df = pd.read_excel(file_path)
    # 判断年份是否在指定范围内,并且月份为1月份
    df_filtered = df[((df['年'] < 1963) | (df['年'] > 2015)) & (df['月'] == 1)]
    # 如果保留的数据不为空,则将文件移动到新文件夹中
    if not df_filtered.empty:
        # 构建新文件的路径
        new_file_path = os.path.join(new_folder_path, file)
        # 移动文件到新路径
        shutil.move(file_path, new_file_path)

这段代码是用来筛选指定条件下的 Excel 文件,并将符合条件的文件移动到新的文件夹中。让我逐步解析这段代码:

1. `import os`, `import shutil`, `import pandas as pd`: 这些是导入所需的 Python 模块。`os` 用于操作文件和文件夹,`shutil` 用于移动文件,`pandas` 用于处理 Excel 文件。

2. `original_folder_path` 和 `new_folder_path`: 这两个变量分别指定了原始文件夹路径和新文件夹路径。

3. `if not os.path.exists(new_folder_path): os.makedirs(new_folder_path)`: 这段代码用于检查新文件夹是否存在,如果不存在则创建新文件夹。

4. `files = [file for file in os.listdir(original_folder_path) if file.endswith('.xls')]`: 这一行代码通过 `os.listdir()` 获取原文件夹中所有以 `.xls` 结尾的文件,并将它们存储在列表 `files` 中。

5. `for file in files:`: 这是一个循环,用于遍历原文件夹中的每个 Excel 文件。

6. `file_path = os.path.join(original_folder_path, file)`: 这一行代码构建了每个文件的完整路径。

7. `df = pd.read_excel(file_path)`: 这里使用 `pandas` 的 `read_excel()` 函数读取 Excel 文件,并将其存储在 DataFrame `df` 中。

8. `df_filtered = df[((df['年'] < 1963) | (df['年'] > 2015)) & (df['月'] == 1)]`: 这行代码筛选出 DataFrame 中满足条件的数据,即年份早于1963或晚于2015,且月份为1月份的数据。

9. `if not df_filtered.empty:`: 如果经过筛选的 DataFrame 不为空,即存在符合条件的数据。

10. `new_file_path = os.path.join(new_folder_path, file)`: 这一行代码构建了移动后文件的新路径。

11. `shutil.move(file_path, new_file_path)`: 使用 `shutil.move()` 函数将文件从原始路径移动到新路径。

举例说明用法:

假设原始文件夹 `D:\qixiangshuju\西北降水_气温数据\新疆` 包含了多个 Excel 文件,其中一些文件名为 `file1.xls`、`file2.xls` 等。这些文件中包含了不同年份和月份的数据。

如果 `file1.xls` 中包含了1962年1月和2016年1月的数据,而 `file2.xls` 中包含了1955年1月和2017年1月的数据。运行以上代码后,符合筛选条件的数据将被移动到新文件夹 `D:\qixiangshuju\新疆` 中。因此,`D:\qixiangshuju\新疆` 文件夹中将包含 `file1.xls` 和 `file2.xls`,而原始文件夹中将不再包含这两个文件。

import os
import shutil
import pandas as pd

# 设置原文件夹路径和新文件夹路径
original_folder_path = r'D:\qixiangshuju\西北降水_气温数据\新疆'
new_folder_path = r'D:\qixiangshuju\新疆'

# 创建新文件夹(如果不存在)
if not os.path.exists(new_folder_path):
    os.makedirs(new_folder_path)

# 获取原文件夹中所有的.xls文件
files = [file for file in os.listdir(original_folder_path) if file.endswith('.xls')]

# 循环处理每个文件
for file in files:
    file_path = os.path.join(original_folder_path, file)
    # 读取Excel文件
    df = pd.read_excel(file_path)
    # 判断年份是否在指定范围内,并且月份为1月份
    df_filtered = df[((df['年'] < 1963) | (df['年'] > 2015)) & (df['月'] == 1)]
    # 如果保留的数据不为空,则将文件移动到新文件夹中
    if not df_filtered.empty:
        # 构建新文件的路径
        new_file_path = os.path.join(new_folder_path, file)
        # 移动文件到新路径
        shutil.move(file_path, new_file_path)
 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

___Y1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值