栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

pandas 筛选excel文件并保存新表

pandas 筛选excel文件并保存新表

文章目录

前言代码总结



前言

今天处理了一个大的excel文件,从中筛选符合条件的数据,excel工具只能筛选两个条件太局限了,就用pandas处理了一下,也是学到了很多东西,在这里记录一下,方便查阅,如果有什么写的不对,不好的地方,希望大佬指正!




代码

代码量很少,就直接在代码中写注释了

import pandas as pd    # 导入pandas包
from tqdm import tqdm  # 这是个进度条的库,方便查看进度


'''
表格中的数据是这样的:GL-1(2024-02-01),RS(2023-02-06),DS(2025-07-01),RT-Ⅲ(2022-04-11),UT-Ⅱ(2023-04-17),MT-Ⅲ(2025-04-30),PT-Ⅲ(2025-04-30),TOFD-Ⅱ(2025-05-31)
有许多不需要的数据,把需要的数据放到一个列表中,去比较字符串
'''
conditions = ['DS', 'RS', 'GD-1', 'GD-2', 'GS']   # 这是需要筛选的信息

data = pd.read_excel('人员.xlsx', encoding='编码')    # 读取表,如果编码总不行,可以用记事本打开表格,点另存为,重新选择编码,
data.fillna(value=0)                # 用0填充空白值
headers = data.columns.values		# 提取表头,因为要把筛选的数据放到新表中嘛
df = pd.Dataframe(columns=headers)	# 新建一个表格,指定表头


block = data['证书']					# 筛选证书列,只有证书列的数据
for i in tqdm(block):				# 遍历每一行的值
    for condition in conditions:	# 遍历筛选条件列表的值
        if condition in i:			# 进行字符串比较
            if condition == 'GS': 	# 这里有个坑,原数据中有GSY,是包含GS的,就当GS处理了,但我们不需要
                if 'GSY' in i:		# 所以我把GS放到了最后,如果前边都没有,只剩GS了,同时GSY在原数据中,就丢掉,不要了
                    break
          
            index = data[data['证书'] == i].index.tolist()[0]   # 如果在GS之前就匹配到了,就查看当前行的索引值
            info = data.iloc[index].values		# 提取当前行的全部信息
            df.loc[len(df)] = info				# 在新表末尾添加一行数据
            break 								# 找到一个值就跳出,避免重复找值
            
df.drop_duplicates(keep='first', inplace=True) 	# 去重,first只保留第一次出现的值
df.to_excel('人员-new.xlsx', index=0, encoding='编码')	# 写入新表,index=0不写入索引值




总结

一步一步探索pandas的使用,如果上边的代码有啥问题的,有指教的,留言就行,定会回复。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735382.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号