Pandas常用操作,多个Excel合并成1个Excel

一、多个Excel合并成1个Excel

▲图1:6年气象站点文件

▲图2:气象站点内容概要

如图,需要将6年的气象站点数据重新整理到一个Excel中。其中每个文件的内容如图2,要求合并时去除第一列,第二列这两个无用列。步骤代码如下:

1.构建文件列表和要读取的文件列名称

import os
import pandas as pd
file_dir = r'D:\公众号\Pandas基本操作'
#设置工作空间,默认读取的就是这个文件夹下的文件
#输出文件时,也是默认输出到本路径下
os.chdir(file_dir)

file_ls = os.listdir(file_dir)  #设置文件列表
print(file_ls)

df = pd.read_csv(file_ls[0]) #读取文件列表第一个文件的全部数据
use_cols = df.columns[2:] #获取要读取的列名,因为有两列是无用列
print(use_cols)

输出结果:

['2015站点匹配.csv','2016站点匹配.csv','2017站点匹配.csv','2018站点匹配.csv','2019站点匹配.csv','2020站点匹配.csv']
Index(['time', 'pm2_5', 'aod', 'blh', 'sp', 't2m', 'rh', 'ndvi', 'dem', 'luc',
       'ws', 'site', 'lon', 'lat'],
      dtype='object')

2.迭代读取文件并拼接数据,输出数据至文件,代码如下:

df = pd.DataFrame(columns = use_cols) #构建一个空的DataFrame二维数组
for file in file_ls:
    son_df = pd.read_csv(file, usecols = use_cols) #读取指定列的数据
    #将两个DataFrame进行拼接,axis = 0表示在行方向拼接,ignore_index可以忽略两个DataFrame的索引
    df = pd.concat([df, son_df], axis = 0, ignore_index = True) 
df.to_excel(r'年份汇总.xlsx', index = False) #输出到文件,index参数可以忽略索引输出
print(df)

结果如图所示,一共98万余条数据,输出时电脑已卡死

二、按照条件删除若干行

以2015年数据为例,列‘pm2_5’表示一年中各个站点的pm2.5数值。假定大于600或小于10为异常值,需要删除,代码如下:

import numpy as np
df = pd.read_csv(file_ls[0], usecols = use_cols)
print(df.shape) #获取删除前的数据形状
del_index = df[(df['pm2_5'] > 600) | (df['pm2_5'] < 10)].index #获取满足条件的行索引
df.drop(del_index, inplace = True) #删除满足条件的行,inplace表示在源数据上删除,故没有返回值
print(df.shape) #输出删除后的数据形状

结果如下,可以看出输出前为148940行,输出后为145291行:

(148940, 14)` `(145291, 14)

同理,删除若干列需要用columns参数,这是因为drop默认删除行,如不加columns参数会找不到对应的行索引:

df.drop(columns = ['time', 'pm2_5'], inplace = True)

三、添加新列

假设我们为2015年添加一列,列名为’new_id’,但是只添加5行,代码如下:

new_id = [i for i in range(5)]``new_id = pd.Series(new_id)``df['new_id'] = new_id``print(df)

可以看出添加成功。pd.Series语法将列表转为Series格式,如果不转换,将会报错,提示行不匹配。

接下来将NaN值赋值为-1,有两个方法,代码如下:

df.loc[df[pd.isnull(df['new_id'])].index, 'new_id'] = -1  #方法1``   ``#方法2``new_col = df['new_id'].fillna('-1')``df['new_id'] = new_col

方法一利用pd.isnull判断某一列中为NaN的行,利用.index得到行索引。再利用df.loc对满足条件的列赋值。

方法二利用.fillna对某一列的NaN赋值为-1,得到的为Series对象。再利用列赋值语句将原来的列覆盖。结果如下:

以上就是在以前常使用的操作,总结下来就是数据的读取、筛选、合并、输出等环节。感谢阅读!

▍学习资源推荐

零基础Python学习资源介绍

👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈
在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈
检查学习结果。
在这里插入图片描述
👉面试刷题👈
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取。

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python中的pandas库来合并多个Excel文件。具体步骤如下: 1. 导入pandas库和os库 ```python import pandas as pd import os ``` 2. 设置要合并Excel文件所在的文件夹路径 ```python folder_path = 'path/to/your/folder' ``` 3. 获取文件夹中所有Excel文件的文件名 ```python file_names = os.listdir(folder_path) excel_files = [f for f in file_names if f.endswith('.xlsx')] ``` 4. 创建一个空的DataFrame ```python df = pd.DataFrame() ``` 5. 遍历所有Excel文件,将它们读取为DataFrame,并将它们合并到df中 ```python for file in excel_files: file_path = os.path.join(folder_path, file) temp_df = pd.read_excel(file_path) df = pd.concat([df, temp_df], ignore_index=True) ``` 6. 将合并后的DataFrame保存为一个新的Excel文件 ```python output_file_path = 'path/to/output/file.xlsx' df.to_excel(output_file_path, index=False) ``` 以上就是使用pandas合并多个Excel文件的步骤。 ### 回答2: 要将多个Excel文件合并一个文件,我们可以使用Python中的Pandas库。Pandas是一个专门用于数据处理和数据分析的库,它提供了DataFrame(数据帧)的数据结构,可以非常方便地处理和操作数据。 首先,我们需要安装Pandas库。我们可以使用pip命令在终端中输入以下命令进行安装: ``` pip install pandas ``` 在安装完后,我们就可以开始使用Pandas合并多个Excel文件了。下面是基本的思路: 1. 导入Pandas库 ``` import pandas as pd ``` 2. 读取Excel文件 我们可以使用`pd.read_excel()`方法来读取Excel文件。例如,如果我们要读取名为“file1.xlsx”的文件,可以使用以下代码: ``` df1 = pd.read_excel('file1.xlsx') ``` 3. 合并多个Excel文件 我们可以使用`pd.concat()`方法来合并多个DataFrame对象。例如,如果我们要合并df1、df2和df3三个DataFrame对象,可以使用以下代码: ``` result = pd.concat([df1, df2, df3]) ``` 其中,`result`变量将包含所有DataFrame对象中的数据,并将它们合并一个大DataFrame对象。 4. 将数据保存到新的Excel文件中 最后,我们可以使用`result.to_excel()`方法将合并后的数据保存到一个新的Excel文件中。例如,我们可以使用以下代码将数据保存到名为“merged.xlsx”的文件中: ``` result.to_excel('merged.xlsx', index=False) ``` 在这种情况下,`index`参数被设置为`False`,这意味着我们不希望将DataFrame对象中的索引列也保存到Excel文件中。 总之,使用Pandas合并多个Excel文件非常简单,只需使用上述步骤即可。这种方法适用于多种不同的数据合并场景。 ### 回答3: 要合并多个Excel文件,可以使用Python中的pandas库。pandas库提供了许多方便的函数来处理数据,包括读取、修改和合并数据。 以合并两个Excel文件为例,我们先读取两个Excel文件(假设都在同一文件夹下): ```python import pandas as pd df1 = pd.read_excel("file1.xlsx") df2 = pd.read_excel("file2.xlsx") ``` 接下来,我们可以使用pandas库中的concat函数将两个数据框(dataframe)合并一个。如果两个数据框中的列名不同,我们可以使用rename函数将它们重命名为相同的列名: ```python df1 = df1.rename(columns={"old_name": "new_name"}) df2 = df2.rename(columns={"old_name": "new_name"}) merged_df = pd.concat([df1, df2]) ``` 如果想按照行的方式合并,即将df2的内容,添加到df1的后面,可以使用append方法: ```python merged_df = df1.append(df2) ``` 如果要将多个Excel文件合并一个,可以使用循环遍历每个Excel文件,然后使用concat或append函数将它们合并起来: ```python import os # 获取当前文件夹下的所有Excel文件 files = [f for f in os.listdir(".") if f.endswith(".xlsx")] # 将所有Excel文件读取数据框并合并 merged_df = pd.DataFrame() for file in files: df = pd.read_excel(file) merged_df = merged_df.append(df) # 将合并后的数据框写入到Excel文件中 merged_df.to_excel("merged.xlsx", index=False) ``` 以上就是用Python pandas合并多个Excel文件的方法。需要注意的是,如果合并Excel文件中有重复的列名或者行号,可能会导致合并后的结果出现错误。因此,在合并之前,最好先检查数据的格式和内容,确保能够正确合并

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值