合并两个excel文件内容,史上最牛

逐个解释代码中使用的函数:

1. `import os`: 这行代码导入了Python的os模块,它提供了与操作系统进行交互的函数。这些函数允许你与操作系统执行各种操作,比如创建文件夹、管理文件路径等。

2. `import pandas as pd`: 这行代码导入了Python的pandas库,并为其指定了别名`pd`。pandas是一个强大的数据分析工具,它提供了数据结构和数据分析工具,使数据处理变得更加简单和高效。

3. `path1 = r"D:\R\降水\新疆1951-1987"` 和 `path2 = r"D:\R\月平均气温\新疆"`: 这两行定义了两个路径,分别存储了降水数据和月平均气温数据的文件夹路径。

4. `files1 = os.listdir(path1)` 和 `files2 = os.listdir(path2)`: 这两行使用`os.listdir()`函数列出了路径1和路径2下的所有文件名,并将它们存储在名为`files1`和`files2`的列表中。

5. `if set(files1) == set(files2):`: 这行代码使用集合操作检查路径1和路径2下的文件名是否完全一致。如果两个路径下的文件名集合相同,则执行接下来的操作;否则,打印出无法进行操作的信息。

6. `for filename in files1:`: 这是一个for循环,用于遍历路径1下的每个文件名。

7. `df1 = pd.read_excel(os.path.join(path1, filename))`: 这行代码使用`pd.read_excel()`函数读取路径1下的Excel文件,并将其加载到名为`df1`的DataFrame对象中。`os.path.join()`函数用于将文件名和路径合并成完整的文件路径。

8. `df2 = pd.read_excel(os.path.join(path2, filename))`: 类似于上一行,这行代码用于读取路径2下的Excel文件,并将其加载到名为`df2`的DataFrame对象中。

9. `df1['TMED'] = df2['TMED']`: 这行代码将路径2文件中的'TMED'列的数据复制到路径1文件的'TMED'列中。DataFrame对象可以像字典一样使用列名进行索引,以访问和修改数据。

10. `df1.to_excel(os.path.join(path1, filename), index=False)`: 这行代码将修改后的DataFrame对象`df1`写入到路径1中的相同文件名的Excel文件中。`to_excel()`函数用于将DataFrame对象保存为Excel文件。参数`index=False`表示不保存行索引。

11. `print("操作完成!")`: 如果成功完成了所有操作,这行代码会打印出操作完成的提示信息。

12. `else:` 和 `print("路径1和路径2下的文件名不一致,无法进行操作。")`: 如果路径1和路径2下的文件名不一致,这行代码会打印出无法进行操作的提示信息。

当然,让我们逐行解析这段代码:

1. `import os`: 这一行导入了Python标准库中的`os`模块,该模块提供了与操作系统交互的函数。

2. `import pandas as pd`: 这行导入了`pandas`库并将其重命名为`pd`,`pandas`是用于数据操作和分析的流行库。

3. `path1 = r"D:\R\降水\新疆1951-1987"`: 这行定义了一个名为`path1`的变量,其值为一个字符串,代表了一个文件夹的路径。`r`前缀表示这是一个原始字符串,路径中的反斜杠不会被转义处理。

4. `path2 = r"D:\R\月平均气温\新疆"`: 这行定义了另一个名为`path2`的变量,其值也为一个文件夹的路径字符串。

5. `files1 = os.listdir(path1)`: 这行使用`os`模块中的`listdir`函数列出了`path1`目录下的所有文件和文件夹,然后将它们存储在`files1`变量中。

6. `files2 = os.listdir(path2)`: 这行做了与上一行类似的事情,但是是列出`path2`目录下的所有文件和文件夹,并将它们存储在`files2`变量中。

7. `if set(files1) == set(files2):`: 这行使用了集合(set)来检查`files1`和`files2`中的文件名是否完全相同。如果相同,则执行下面的代码块,否则打印一条消息表示路径1和路径2下的文件名不一致。

8. `for filename in files1:`: 这行开始一个`for`循环,迭代遍历`files1`中的每个文件名。

9. `df1 = pd.read_excel(os.path.join(path1, filename))`: 这行使用`pd.read_excel`函数从`path1`目录下的当前文件中读取数据,并将其存储在名为`df1`的Pandas DataFrame中。

10. `df2 = pd.read_excel(os.path.join(path2, filename))`: 这行做的与上一行类似,但是是从`path2`目录下的当前文件中读取数据,并将其存储在名为`df2`的Pandas DataFrame中。

11. `df1['TMED'] = df2['TMED']`: 这行将`df2`中名为`TMED`的列的数据复制到了`df1`中的第四列(索引为3)。

12. `df1.to_excel(os.path.join(path1, filename), index=False)`: 这行将合并后的数据保存回`path1`目录下的当前文件中,`index=False`参数表示不保存DataFrame的索引。

13. `print("操作完成!")`: 这行打印了一条消息,表示操作已完成。

Python代码:

import os
import pandas as pd
 
# 定义路径
path1 = r"D:\R\降水\新疆1951-1987"
path2 = r"D:\R\月平均气温\新疆"
 
# 获取路径下的文件名
files1 = os.listdir(path1)
files2 = os.listdir(path2)
 
# 检查路径1和路径2下的文件名是否一致
if set(files1) == set(files2):
    for filename in files1:
        # 读取路径1文件的数据
        df1 = pd.read_excel(os.path.join(path1, filename))
        
        # 读取路径2文件的TMED数据
        df2 = pd.read_excel(os.path.join(path2, filename))
        
        # 将TMED数据复制到路径1文件的第四列
        df1['TMED'] = df2['TMED']
        
        # 将合并后的数据保存回路径1文件
        df1.to_excel(os.path.join(path1, filename), index=False)
        
    print("操作完成!")
else:
    print("路径1和路径2下的文件名不一致,无法进行操作。")

import os
import pandas as pd

# 定义路径
path1 = r"D:\R\降水\新疆1951-1987"
path2 = r"D:\R\月平均气温\新疆"

# 获取路径下的文件名
files1 = os.listdir(path1)
files2 = os.listdir(path2)

# 检查路径1和路径2下的文件名是否一致
if set(files1) == set(files2):
    for filename in files1:
        # 读取路径1文件的数据
        df1 = pd.read_excel(os.path.join(path1, filename))
        
        # 读取路径2文件的TMED数据
        df2 = pd.read_excel(os.path.join(path2, filename))
        
        # 将TMED数据复制到路径1文件的第四列
        df1['TMED'] = df2['TMED']
        
        # 将合并后的数据保存回路径1文件
        df1.to_excel(os.path.join(path1, filename), index=False)
        
    print("操作完成!")
else:
    print("路径1和路径2下的文件名不一致,无法进行操作。")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

___Y1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值