python实现excel和csv中的vlookup函数

news/2024/7/21 7:35:40 标签: python, excel, pandas

本篇博客会介绍如何使用pythonexcel和csv里实现vlookup函数的功能,首先需要简单了解一下python如何操作excel

pythonexcel_1">1. python处理excel

excel_2">1.1 删除excel中指定行

在文件夹里创建了一个excel文件,可以看到里面放的是三国人物的数据
在这里插入图片描述
会发现在【蜀】里,多了一个【晋】,所以此时我们先实现删掉这条数据

python">import pandas as pd
import openpyxl
import os

shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx'
#删除指定行
df_shu = pd.read_excel(shu)
selected_rows = df_shu.loc[df_shu["国家"] == "晋"]
print(selected_rows)

这时我们就已经将需要删除的数据找了出来
在这里插入图片描述
此时可以使用数据框的drop()方法来删除选定的行

python">df_shu = df_shu.drop(selected_rows.index)
print(df_shu)

在这里插入图片描述
现在只需要将结果存回excel就完成了这个需求

python">#保存至excel
df_shu.to_excel(shu, index=False)

此时再打开文件夹内的excel就会发现已经删掉了【晋】的数据
在这里插入图片描述

excel_32">1.2 获取excel的最大行数

在不打开一个excel的前提下,可以通过openpyxl来直接获取这个文件的最大行数,方便对这个文件大小有个初步的理解

python">import pandas as pd
import openpyxl
import os

shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx'
wei = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/魏.xlsx'
wu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/吴.xlsx'
#删除指定行
df_shu = pd.read_excel(shu)
df_wei = pd.read_excel(wei)
df_wu = pd.read_excel(wu)

#查看最大行数
workbook = openpyxl.load_workbook(wei)
worksheet = workbook['Sheet1']
max_row = worksheet.max_row

print(max_row)

这样就可以直接获取最大行数为4
在这里插入图片描述

excel_56">1.3 将excel表进行上下拼接

在当前的示例中,魏蜀吴三个势力的数据是分开存放的,现在想要汇总出整个三国的数据,就可以先提取表头,再将剩下的内容合并在一起,这时可以通过concat函数进行实现

python">import pandas as pd
import openpyxl
import os

shu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/蜀.xlsx'
wei = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/魏.xlsx'
wu = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/吴.xlsx'
#删除指定行
df_shu = pd.read_excel(shu)
df_wei = pd.read_excel(wei)
df_wu = pd.read_excel(wu)

#两张表进行上下拼接
df = pd.concat([df_shu, df_wei, df_wu])

# 将合并后的数据写入新的Excel文件
df.to_excel(r"D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/三国.xlsx", index=False)

运行之后就会发现在当前文件夹里多出来了一个新文件
在这里插入图片描述
而里面的内容也确实是几个文件的内容拼接
在这里插入图片描述

excelvlookup_81">1.4 实现excel中的vlookup函数

平时在工作中,会需要将两份excel进行vlookup操作,如果数据量比较大,则程序会运行的比较慢,这时候就可以用merge函数进行实现

python">import pandas as pd
import openpyxl
import os

#两张表进行vlookup
sanguo = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/三国.xlsx'
wuqi = r'D:/Python_Project/data_analysis/csdn/pandas/pandas合并excel/源文件/武器.xlsx'

df_sanguo = pd.read_excel(sanguo)
df_wuqi = pd.read_excel(wuqi)

df=pd.merge(df_sanguo, df_wuqi, how= 'left',left_on = '人物', right_on = '名称')
print(df)

其中how参数是连接方式,这里使用的是左连接,left_on right_on 参数是两张表关联所使用的字段名称,运行程序后会直接看到关联后的结果
在这里插入图片描述

pythoncsv_100">2. python处理csv

经过实测,对csv文件进行vlookup操作和对excel是一样的,都可以直接使用merge函数


http://www.niftyadmin.cn/n/27035.html

相关文章

windows避免程序休眠

文章目录 目的代码头文件引用语法参数返回值注解目的 主要是为了解决在一些应用程序中, 电脑休眠对其产生影响。 代码 SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);是在函数入口程序main 调用。 头文件引用 #include

序列化——考虑使用自定义的序列化形式

如果没有先认真考虑默认的序列化形式是否合适,则不要贸然接受 接受默认的序列化是一个非常重要的决定,你需要从灵活性,性能和正确性多个维度考虑。一般来讲,只有当你自行设计的自定义序列化形式与默认基本相同时,才能…

使用Stable Diffusion和Pokedex的描述生成神奇宝贝图片

还记得我们以前使用GAN、Clip、DALL-E生成神奇宝贝的文章吗,现在是时候使用Stable Diffusion了 在本文中,我将展示如何从神奇宝贝系列不同游戏中的Pokedex条目中获取神奇宝贝描述,并使用Stable Diffusion根据这些藐视生成图片,这样…

<Linux> Linux项目自动化构建工具—makemakefile的使用

< Linux> Linux 项目自动化构建工具—make/makefile的使用 文章目录< Linux> Linux 项目自动化构建工具—make/makefile的使用一、make/makefile的背景二、如何编写 makefile1.依赖关系和依赖方法2.makefile的使用3.clean的使用4.多文件编译5.伪目标 .PHONY6.三个时…

【uniapp】uniapp使用高德地图定位打包成安卓app的一些记录,比如打包后定位失效、

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、创建你的uniapp1.打开Dcloud开发者后台2.下载你的证书、获取你的SHA1安全码、证书私钥密码二、打开高德开放平台申请key1.打开官网2.创建一个应用三、在unia…

动态内存管”家“

&#x1f40b;动态内存管理&#x1f996;动态内存分配存在的意义&#x1f996;动态内存函数的介绍&#x1f424;malloc和free&#x1f424;calloc&#x1f424;realloc&#x1f996;常见动态内存错误&#x1f424;对空指针的解引用操作&#x1f424;对动态开辟空间的越界访问&a…

记一个奇怪的gcc编译优化:-ftree-vrp

记一个奇怪的gcc编译优化&#xff1a;-ftree-vrp最近有同事遇到一个gcc不同编译优化选项结果不一致的问题&#xff0c;从该问题反映出编程规范&#xff08;我更倾向于华为内部使用的”编程军规“的叫法&#xff09;的问题非常有参考意义&#xff0c;在此分享给大家。 程序可简…

【图像分类】基于yolov5的钢板表面缺陷分类(附代码和数据集)

写在前面&#xff1a; 首先感谢兄弟们的订阅&#xff0c;让我有创作的动力&#xff0c;在创作过程我会尽最大能力&#xff0c;保证作品的质量&#xff0c;如果有问题&#xff0c;可以私信我&#xff0c;让我们携手共进&#xff0c;共创辉煌。 Hello&#xff0c;大家好&#xf…