百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

python 多表查询字段或者值

liuian 2025-01-10 15:15 12 浏览

前言

OK了老铁们,不管是初入社会的牛马还是当了多年牛马的你,一定会有需要批量修改,数据处理等等日常办公繁琐又简单的重复劳动,这种情况在AI发展的今天就要学会偷懒,而我呢也是通过AI学习并且整理了一系列日常办公且常用的偷懒处理,帮助广大牛马人更好的偷懒。

场景重现

现在你有N多个数据表,领导需要你找到有xx字段或者是有xx数据的表格,别再使用人工一个一个查找了,现在可以使用python的pandas库帮你查找。

实现思路

遍历文件:使用os模块遍历指定文件夹下的所有文件,筛选出 Excel 文件(.xlsx或.xls格式)。

读取 Excel 内容:利用pandas库读取每个 Excel 文件的内容。pandas是一个强大的数据处理库,能够轻松读取和处理各种表格数据。

数据查找:根据输入的字段名或数值,在读取的 Excel 数据中进行查找。可以通过条件判断或数据筛选的方式实现。

import os
import pandas as pd


def search_excel_data(target, folder_path):
    result_paths = []
    for filename in os.listdir(folder_path):
        if filename.endswith(('.xlsx', '.xls')):
            file_path = os.path.join(folder_path, filename)
            try:
                df = pd.read_excel(file_path)
                if isinstance(target, str) and target in df.columns:
                    result_paths.append(file_path)
                elif isinstance(target, (int, float)) and (df == target).any().any():
                    result_paths.append(file_path)
            except Exception as e:
                print(f"读取 {file_path} 时出错: {e}")
    return result_paths


if __name__ == '__main__':
    target_value = input("请输入要查找的字段名或数值: ")
    try:
        target = int(target_value)
    except ValueError:
        try:
            target = float(target_value)
        except ValueError:
            target = target_value
    folder_path = input("请输入存放Excel文件的文件夹路径: ")
    result = search_excel_data(target, folder_path)
    for path in result:
        print(path)

search_excel_data函数首先遍历指定文件夹下的所有文件,筛选出 Excel 文件。 然后使用pd.read_excel读取每个 Excel 文件的数据。 通过判断输入的target是字段名(字符串类型)还是数值(整数或浮点数类型),在数据中进行查找。如果找到符合条件的文件,将其路径添加到result_paths列表中。 最后在__main__部分,通过用户输入获取要查找的目标值和存放 Excel 文件的文件夹路径,并调用函数进行查找,打印出符合条件的文件路径。

pandas是 Python 中用于数据处理和分析的核心库,它提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。其名称源于 “panel data”(面板数据)和 “Python data analysis”(Python 数据分析)。

常用函数:

  1. **read_csv()**:用于从 CSV 文件中读取数据并创建 DataFrame 对象。例如data = pd.read_csv('data.csv'),可将名为data.csv的文件数据读取到data这个 DataFrame 中。
  2. **read_excel()**:从 Excel 文件中读取数据。如df = pd.read_excel('file.xlsx', sheet_name='Sheet1'),从指定 Excel 文件的Sheet1工作表读取数据到df。
  3. **head()**:快速查看 DataFrame 的前几行数据,默认显示前 5 行。data.head()即可展示data的前 5 行内容。
  4. **tail()**:与head()相反,用于查看 DataFrame 的后几行数据,默认也是 5 行。
  5. **info()**:提供 DataFrame 的简要信息,包括每列的数据类型、非空值数量等。data.info()可打印出data的详细信息。
  6. **describe()**:生成数据的描述性统计信息,包括计数、均值、标准差、最小值、最大值以及四分位数等。data.describe()会计算并显示data的相关统计信息。
  7. **drop()**:用于删除 DataFrame 中的行或列。例如new_data = data.drop('column_name', axis = 1),将data中的column_name列删除,并将结果赋值给new_data;若要删除行,axis设为 0 。
  8. **groupby()**:按照某一列或多列对数据进行分组。grouped = data.groupby('category')会根据category列对data进行分组,之后可对分组后的数据进行聚合操作,如grouped['value'].sum()计算每个分组中value列的总和。
  9. **merge()**:用于合并两个或多个 DataFrame,类似于数据库中的表连接操作。merged_data = pd.merge(df1, df2, on='key'),根据key列将df1和df2进行合并。

相关推荐

GANs为何引爆机器学习?这篇基于TensorFlow的实例教程为你解惑!

「机器人圈导览」:生成对抗网络无疑是机器学习领域近三年来最火爆的研究领域,相关论文层出不求,各种领域的应用层出不穷。那么,GAN到底如何实践?本文编译自Medium,该文作者以一朵玫瑰花为例,详细阐...

高丽大学等机构联合发布StarGAN:可自定义表情和面部特征

原文来源:arXiv、GitHub作者:YunjeyChoi、MinjeChoi、MunyoungKim、Jung-WooHa、SungKim、JaegulChoo「雷克世界」编译:嗯~...

TensorFlow和PyTorch相继发布最新版,有何变化

原文来源:GitHub「机器人圈」编译:嗯~阿童木呀、多啦A亮Tensorflow主要特征和改进在Tensorflow库中添加封装评估量。所添加的评估量列表如下:1.深度神经网络分类器(DNNCl...

「2022 年」崔庆才 Python3 爬虫教程 - 深度学习识别滑动验证码缺口

上一节我们使用OpenCV识别了图形验证码躯壳欧。这时候就有朋友可能会说了,现在深度学习不是对图像识别很准吗?那深度学习可以用在识别滑动验证码缺口位置吗?当然也是可以的,本节我们就来了解下使用深度...

20K star!搞定 LLM 微调的开源利器

LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为...

大模型DeepSeek本地部署后如何进行自定义调整?

1.理解模型架构a)查看深度求索官方文档或提供的源代码文件,了解模型的结构、输入输出格式以及支持的功能。模型是否为预训练权重?如果是,可以在预训练的基础上进行微调(Fine-tuning)。是否需要...

因配置不当,约5000个AI模型与数据集在公网暴露

除了可访问机器学习模型外,暴露的数据还可能包括训练数据集、超参数,甚至是用于构建模型的原始数据。前情回顾·人工智能安全动态向ChatGPT植入恶意“长期记忆”,持续窃取用户输入数据多模态大语言模型的致...

基于pytorch的深度学习人员重识别

基于pytorch的深度学习人员重识别Torchreid是一个库。基于pytorch的深度学习人员重识别。特点:支持多GPU训练支持图像的人员重识别与视频的人员重识别端到端的训练与评估简单的re...

DeepSeek本地部署:轻松训练你的AI模型

引言:为什么选择本地部署?在AI技术飞速发展的今天,越来越多的企业和个人希望将AI技术应用于实际场景中。然而,对于一些对数据隐私和计算资源有特殊需求的用户来说,云端部署可能并不是最佳选择。此时,本地部...

谷歌今天又开源了,这次是Sketch-RNN

前不久,谷歌公布了一项最新技术,可以教机器画画。今天,谷歌开源了代码。在我们研究其代码之前,首先先按要求设置Magenta环境。(https://github.com/tensorflow/magen...

Tensorflow 使用预训练模型训练的完整流程

前面已经介绍了深度学习框架Tensorflow的图像的标注和训练数据的准备工作,本文介绍一下使用预训练模型完成训练并导出训练的模型。1.选择预训练模型1.1下载预训练模型首先需要在Tensorf...

30天大模型调优学习计划(30分钟训练大模型)

30天大模型调优学习计划,结合Unsloth和Lora进行大模型微调,掌握大模型基础知识和调优方法,熟练应用。第1周:基础入门目标:了解大模型基础并熟悉Unsloth等工具的基本使用。Day1:大模...

python爬取喜马拉雅音频,json参数解析

一.抓包分析json,获取加密方式1.抓包获取音频界面f12打开抓包工具,播放一个(非vip)视频,点击“媒体”单击打开可以复制URL,发现就是我们要的音频。复制“CKwRIJEEXn-cABa0Tg...

五、JSONPath使用(Python)(json数据python)

1.安装方法pipinstalljsonpath2.jsonpath与Xpath下面表格是jsonpath语法与Xpath的完整概述和比较。Xpathjsonpath概述/$根节点.@当前节点...

Python网络爬虫的时候json=就是让你少写个json.dumps()

大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Python网络爬虫的问题,提问截图如下:登录请求地址是这个:二、实现过程这里【甯同学】给了一个提示,如下所示:估计很多小伙伴和...