pandas 根据筛选条件对指定excel列进行筛选

  • 导入需要筛选的excel和筛选条件
  • 要筛选的表格A
  • 思路
  • 结果

这两天老师要求筛选一下最近几年学院发表的文章,从图书馆那要了份数据量较大的excel,将该excel分成学生文章、老师文章两份excel,以第一作者为区分,B站学习法稍微补了补python操作excel,看到pandas就顺手用一下了……大佬勿喷,仅仅是稍微学了一下。

导入需要筛选的excel和筛选条件

import pandas as pddf = pd.read_excel('D:/py_project/datafenxi/scut.xls',sheet_name='savedrecs')
ji_he = {'name1','name2','name3',任意多个name}

这里的ji_he是提供的学院所有老师的姓名,与下面的要筛选的表格A做匹配,标记出A中一作为老师的论文。那剩下的未标记就是学生。

要筛选的表格A

excel内容大概长这样(对不起!杰伦力宏紫棋):

ID Author Full Names 发了什么期刊、日期等等
0 Zhou, Jielun;Peng, Yuyan;Li, Bai;Xiu, Er xxxx
1 Wang, Lihong;Zhang, San;Li, Si xxxx
2 Deng, Ziqi ;Wang, Wu xxxx

这里一作就是杰伦,力宏,和紫棋。

思路

1、由于我们只要第一作者,所以对要筛选的表格A的Author Full Names列进行遍历,按;分割成数组取第0个元素,因为拿到的表格一作的格式千奇百怪,还有-等等莫名字符,所以稍微改了下。
2、拿到的每行A表格的一作名字,与指定老师名单做匹配,True则记录下该索引ID,并给值teacher创建sheet1
3、使用merg()将要筛选的表格A与sheet1做匹配整合成一张表。

while i < len(df):a = df.loc[i, 'Author Full Names']  # 取出Author Full Names列的第i行a1 = str(a).split(';')[0].replace('-', '')   # 筛选第i行AFN列的内容,按;分割成数组取第0个元素,删除-字符返回a1# print('q', a1)if a1 in ji_he:print('qq', i)    # 获取匹配的索引df3.loc[i] = ['teacher']   # 给匹配出来的一作老师标上teacherdf3.to_excel("D:/py_project/datafenxi/outputscut.xls")   # 输出为新的列表i += 1

这里我们可以拿到一个根据A匹配出来的一作是老师身份的索引表sheet1,like this:
然后用merge()根据ID将两份表拼成一份完整表,就基本完成需求了(分成两份表我直接选择excel做透视了,又懒又菜说的就是我)

import pandas as pdsheet1 = pd.read_excel('D:/py_project/datafenxi/scut.xls', sheet_name='savedrecs', index_col='ID')
sheet2 = pd.read_excel('D:/py_project/datafenxi/scut.xls', sheet_name='Sheet1', index_col='ID')table = sheet1.merge(sheet2, how='left', on='ID')
table.to_excel("D:/py_project/datafenxi/outputfinal.xls")
print(table)

结果

这部分语法可以参考B站视频 Link,记得把两个sheet放在一个excel里面(其实我看到了其他大佬直接将多个sheet输出在一个excel,但我没时间改了,之后看看。)
以下是最终结果,表格最右边区分身份:teacher,空为student。

pandas 根据筛选条件对指定excel列进行筛选相关推荐

  1. Pandas根据筛选条件对指定excel列进行筛选!神器!

    这两天老师要求筛选一下最近几年学院发表的文章,从图书馆那要了份数据量较大的excel,将该excel分成学生文章.老师文章两份excel,以第一作者为区分,B站学习法稍微补了补python操作exce ...

  2. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数

    R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录

  3. 学python看什么书好1002无标题-如何使用pandas读取txt文件中指定的列(有无标题)

    最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...

  4. python按列读取txt文件_如何使用pandas读取txt文件中指定的列(有无标题)

    最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...

  5. python读取指定路径txt文件-如何使用pandas读取txt文件中指定的列(有无标题)

    最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...

  6. python 按列名称筛选_python中实现excel的高级筛选

    一 Excel里的高级筛选功能,着实令人惊叹,VBA里实现起来也相对简单,就是手动操作的代码化,设置好三项参数,便可以随取随用,效果稳准快. 二 在python 中实现同样的目的,更为直白爽快,不信你 ...

  7. [Pandas] 相同分组条件下的特定列除第一行以外的值为空

    美图欣赏2022/07/16 在最近的需求开发中,针对原有逻辑进行开发,导出的Excel数据如下所示: 提示: 以上数据仅为Demo数据,其中site和material分组后,如果两者数值分为同一组别 ...

  8. input=file 浏览时只显示指定excel文件,筛选特定文件类型

    https://www.cnblogs.com/quitpoison/p/9765974.html

  9. python对excel进行筛选-python如何实现excel按颜色筛选功能

    离岛 2020-07-09 09:37 已采纳 不太了解具体需求,提供一些示例代码和思路供你参考: 整体思路:首先已知excel中的颜色值,根据编码实现颜色筛选的功能 示例: 1.首先安装pip in ...

最新文章

  1. 一般能达到多少_实话实说:一般家庭存款有多少?你又达到标准了吗?
  2. 关于Android中的onCreate()多次被调用导致bindService被多次调用的问题...
  3. OpenCASCADE:适用于 Android 的 OCCT AndroidQt 示例
  4. kubectl技巧之查看资源列表,资源版本和资源schema配置
  5. 水文分析提取河网_基于图的河网段地理信息分析排序算法
  6. pyqt按钮关闭窗口_PyQt5按钮单击事件,退出程序
  7. 运算均值方差_Python数据分析之NumPy(运算篇)
  8. 字符串匹配——RabinKarp算法
  9. iPhone 12包装盒设计曝光,没充电器没耳机实锤?
  10. 07.计算Nova→2.nova组件详解→2.nova-scheduler
  11. android圆图,Android实现圆形图片或者圆角图片
  12. 基于HT for Web的3D树的实现
  13. Java实用教程(第5版)参考答案
  14. FPGA——HLS编程入门
  15. 【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线-直线VB模拟软件实现
  16. shell命令进制转换
  17. 网站排名不好的解决方法
  18. 微信公众平台服务号与订阅号区别详解
  19. python开发前景如何
  20. 如何在element-plus配套vue3中使用日期时间选择器默认英文修改为中文

热门文章

  1. 华硕Android原始密码,华硕路由器默认密码是多少?ASUS路由器初始密码介绍
  2. SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式
  3. 多硬盘分区管理fdisk
  4. 发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!
  5. 小白专属:大数据总纲_大数据路线_高屋建瓴的体验大数据的世界
  6. 冰蝎v4.0已经更新,在Java18下也能启动冰蝎。
  7. Liunx查看系统版本
  8. 三星和华为均发布了5G手机芯片,谁的性能更强?
  9. 《数据分析-SmartChart02》SmartChart低代码平台-可视化开发
  10. 1269: 爱看电视的LsF+遥控器 dfs+剪枝