halcon 将数据保存到excel_pandas筛选、合并、批量保存excel数据

人生苦短,我学python!

python是目前最流行的编程语言,功能十分强大,在爬虫、数据分析、人工智能方面均得以广泛应用。本专辑主要分享两个数据分析库numpy和pandas在数据分析方面的基础知识和各种技能,pandas的快、准、简洁远非office的excel可比,而且免费。本期开始将全面总结pandas在处理excel数据的方方面面的知识,力争通过100期左右,完成pandas和numpy相关知识的介绍及其配套数据可视化库matplotlib和seaborn的介绍。特别说明,做这个专辑,纯属爱好,总结所学知识。pandas的强大,谁用谁知道,绝非打广告。我把她叫做超级excel。由于是笔记,当然就是先从非常厉害的东东开始了,所以没有依据由浅入深的顺序。知识的记录仍然按照知识点的方式进行,所有代码均经过反复实践,力争知识点没有错误。操作平台有Jupyter Notebook 、pycharm。安装非常简单。后期估计会记录一些他们的设置。本期共6547个字,需要花费17分钟阅读。本期是第一期,如果没人喜欢,下期开始就设置权限了,本来就是自己的学习小结,错误在所难免,对您有用就看看,没用就绕道,谢谢!建议电脑查看,手机查看格式可能会乱。

知识点一:批量打开多工作薄并快速进行合并

具体步骤:

环境准备:

import pandas as pd

import os

第一步,新建文件夹(里需要合并的多个工作表)定义新建文件夹的路径;

imputdir = r'C:\Users\xiaobin\Desktop\111'

第一步,新建一个空的DateFrame;

dfe=pd.DataFrame(columns=['姓名','2011年','2012年','2013年','2014年'])

第三步:利用os库中的walk方法可以遍历文件夹的所有文件,并读取文件的名字,os.path.join能够将文件夹的路径和文件夹中的名字合并成每个文件完整路径。并将每个文件读取,再与空的DateFrame合并.

for parents,dirnames,filenames in os.walk(imputdir):

    for filename in filenames:

        df=pd.read_excel(os.path.join(parents,filename))

        dfe=dfe.append(df,ignore_index=True)

第四歩:保存数据

df_empty.to_excel(r'C:\Users\xiaobin\Desktop\111\汇总表.xlsx',index_label='序号')

10a480ff911174b10dd3a02096c1610b.gif

完整代码如下:

import pandas as pd

import os

imputdir = r'C:\Users\xiaobin\Desktop\111'

dfe=pd.DataFrame(columns=['姓名','2011年','2012年','2013年','2014年'])

for parents,dirnames,filenames in os.walk(imputdir):

    for filename in filenames:

        df=pd.read_excel(os.path.join(parents,filename))

        dfe=dfe.append(df,ignore_index=True)

df_empty.to_excel(r'C:\Users\xiaobin\Desktop\111\汇总表.xlsx',index_label='序号')

10a480ff911174b10dd3a02096c1610b.gif

知识点二:保存多个工作表到同一工作薄

环境安装:

import numpy as np

import pandas as pd

path='要保存的路径'

with pd.ExcelWriter(path) as writer:

    df.to_excel(writer,sheet_name='第一个文件的名字',columns=['需要保存的列名,用逗号隔开'],index=True,index_label='行索引的名字')

    df.to_excel(writer,sheet_name='第二个文件的名字',columns=['需要保存的列名,用逗号隔开'],index=True,index_label='行索引的名字')

    df.to_excel(writer,sheet_name='第一个文件的名字',columns=['需要保存的列名,用逗号隔开'],index=True,index_label='行索引的名字')  

10a480ff911174b10dd3a02096c1610b.gif

非常简单,就不赘述了。

10a480ff911174b10dd3a02096c1610b.gif

知识点三:神器筛选直接上我操练的代码吧。筛选方法第一种:通过索引筛选 filter函数

In [1]:

import numpy as np
import pandas as pd

In [139]:

path=r'C:\Users\xiaobin\Desktop\练习.xlsx'
df=pd.read_excel(path,index_col=0)
df

Out[139]:

西瓜西红柿苦瓜南瓜马铃署地区
张三82103615896康定
李四144148856260乌鲁木齐
王二麻子1217314256145常州
李山1391191208694石家庄
小李子931075583138唐山
曾贤志1451116512666连云港
黄山130123116132110苏州
级别AAABABBBNaN

对序列进行筛选,针对Series的序列

In [140]:

df.西瓜.filter(items=['李四','李山'])

Out[140]:

李四    144
李山 139
Name: 西瓜, dtype: object

In [141]:

df.西瓜.filter(like=('李'))

Out[141]:

李四     144
李山 139
小李子 93
Name: 西瓜, dtype: object

In [142]:

df.西瓜.filter(regex=('^李.$'))

Out[142]:

李四    144
李山 139
Name: 西瓜, dtype: object

针对DateFrame的index(行索引)columns(列索引)

In [143]:

df.filter(items=['李四','李山'],axis=0)  
#行索引筛选axis=0,如果axis=1针对列筛选

Out[143]:

西瓜西红柿苦瓜南瓜马铃署地区
李四144148856260乌鲁木齐
李山1391191208694石家庄

In [144]:

df.filter(items=['李四','李山'],axis=1)  #如果设置axis=1,
啥都没有

Out[144]:

张三
李四
王二麻子
李山
小李子
曾贤志
黄山
级别

In [145]:

df.filter(items=['西瓜','苦瓜'],axis=1) 
 #对列索引进行筛选

Out[145]:

西瓜苦瓜
张三8261
李四14485
王二麻子121142
李山139120
小李子9355
曾贤志14565
黄山130116
级别AAB

In [146]:

df.filter(items=['西瓜','苦瓜'],axis='columns') 

#对列筛选columns

Out[146]:

西瓜苦瓜
张三8261
李四14485
王二麻子121142
李山139120
小李子9355
曾贤志14565
黄山130116
级别AAB

In [147]:

df.filter(items=['李四','李山'],axis='index')  
#行索引筛选axis='index',如果axis=1针对列筛选

Out[147]:

西瓜西红柿苦瓜南瓜马铃署地区
李四144148856260乌鲁木齐
李山1391191208694石家庄

In [148]:

df.filter(like='李',axis='index')

Out[148]:

西瓜西红柿苦瓜南瓜马铃署地区
李四144148856260乌鲁木齐
李山1391191208694石家庄
小李子931075583138唐山

In [149]:

df.filter(like='瓜',axis='columns')

Out[149]:

西瓜苦瓜南瓜
张三826158
李四1448562
王二麻子12114256
李山13912086
小李子935583
曾贤志14565126
黄山130116132
级别AABAB

In [150]:

df.filter(regex='瓜',axis='columns')

Out[150]:

西瓜苦瓜南瓜
张三826158
李四1448562
王二麻子12114256
李山13912086
小李子935583
曾贤志14565126
黄山130116132
级别AABAB

In [151]:

df.filter(regex='^..$',axis='columns')

Out[151]:

西瓜苦瓜南瓜地区
张三826158康定
李四1448562乌鲁木齐
王二麻子12114256常州
李山13912086石家庄
小李子935583唐山
曾贤志14565126连云港
黄山130116132苏州
级别AABABNaN

In [152]:

df.filter(regex='^..$',axis='index')

Out[152]:

西瓜西红柿苦瓜南瓜马铃署地区
张三82103615896康定
李四144148856260乌鲁木齐
李山1391191208694石家庄
黄山130123116132110苏州
级别AAABABBBNaN

In [153]:

前面是针对Series和DateFrame的索引进行筛选,
下面针对DateFrame的数据行和列进行筛选
原理是针对序列Series的str.match方法
  File "", line 1    前面是针对Series和DateFrame的索引进行筛选,
下面针对DateFrame的数据行和列进行筛选     

In [154]:

对 DataFrame 行或列进行筛选
print('-----对 DataFrame 的正则筛选-------')
print(df[df.地区.astype(str).str.match('^..$')])#对 df 的行筛选
print(df.T[df.T.级别.astype(str).str.match('[AB]{2}')].T)#对 df 的列筛选
In [155]:
#筛选满足条件的某些列
df.地区.str.match('^..$',na=False)  
#含义是筛选出地区中只有两个字的地区的对应行内容。

Out[155]:

张三       True
李四 False
王二麻子 True
李山 False
小李子 True
曾贤志 False
黄山 True
级别 False
Name: 地区, dtype: bool

In [156]:

df[df.地区.str.match('^..$')] #此处出现错误主要是筛选字段地区中
有错误值或者空值如何处理看下面,参数na=False就是屏蔽掉错误值。
--------------------------------------------------------------------------ValueError   Traceback (most recent call last) in ----> 1 df[df.地区.str.match('^..$')] 
#此处出现错误主要是筛选字段地区中有错误值或者空值
如何处理看下面,参数na=False就是屏蔽调错误值d:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key) 2789   # Do we have a (boolean) 1d indexer?-> 2790  if com.is_bool_indexer(key):   2791  return self._getitem_bool_array(key)   2792 d:\ProgramData\Anaconda3\lib\site-packages\pandas\core\common.py in is_bool_indexer(key)    134    na_msg = "Cannot mask with non-boolean array containing NA / NaN values"    135   if isna(key).any():--> 136   raise ValueError(na_msg)    137  return False    138  return TrueValueError: Cannot mask with non-boolean array containing NA / NaN values

In [157]:

df[df.地区.str.match('^..$',na=False)]  #看吧,正确了,
不过还有其他方法处理错误值或者缺失值

Out[157]:

西瓜西红柿苦瓜南瓜马铃署地区
张三82103615896康定
王二麻子1217314256145常州
小李子931075583138唐山
黄山130123116132110苏州

In [158]:

df.地区.astype(str).str.match('^..$')#两者对比看一下,
空值转为字符串就变成false,放入索引中就不会被选择。

Out[158]:

张三       True
李四 False
王二麻子 True
李山 False
小李子 True
曾贤志 False
黄山 True
级别 False
Name: 地区, dtype: bool

In [159]:

df.地区.str.match('^..$')

Out[159]:

张三       True
李四 False
王二麻子 True
李山 False
小李子 True
曾贤志 False
黄山 True
级别 NaN
Name: 地区, dtype: object

上面是对列字段的处理,针对行字段的处理首先要把表格转置.T,

看一下数据,此次利用级别行来筛选

In [160]:

df

Out[160]:

西瓜西红柿苦瓜南瓜马铃署地区
张三82103615896康定
李四144148856260乌鲁木齐
王二麻子1217314256145常州
李山1391191208694石家庄
小李子931075583138唐山
曾贤志1451116512666连云港
黄山130123116132110苏州
级别AAABABBBNaN

In [161]:

df.T  #第一步,表格转置

Out[161]:

张三李四王二麻子李山小李子曾贤志黄山级别
西瓜8214412113993145130AA
西红柿10314873119107111123A
苦瓜61851421205565116B
南瓜5862568683126132AB
马铃署96601459413866110BB
地区康定乌鲁木齐常州石家庄唐山连云港苏州NaN

In [162]:

df.values  #df数据内容时ndarray,二维数组

Out[162]:

array([[82, 103, 61, 58, 96, '康定'],
[144, 148, 85, 62, 60, '乌鲁木齐'],
[121, 73, 142, 56, 145, '常州'],
[139, 119, 120, 86, 94, '石家庄'],
[93, 107, 55, 83, 138, '唐山'],
[145, 111, 65, 126, 66, '连云港'],
[130, 123, 116, 132, 110, '苏州'],
['AA', 'A', 'B', 'AB', 'BB', nan]], dtype=object)

In [163]:

df.T[df.T.级别.str.match('[AB]{2}',na=False)]  #任务完成
不过与原表不一致,咋整呢?

Out[163]:

张三李四王二麻子李山小李子曾贤志黄山级别
西瓜8214412113993145130AA
南瓜5862568683126132AB
马铃署96601459413866110BB

In [164]:

df.T[df.T.级别.str.match('[AB]{2}',na=False)].T #再次进行转置

Out[164]:

西瓜南瓜马铃署
张三825896
李四1446260
王二麻子12156145
李山1398694
小李子9383138
曾贤志14512666
黄山130132110
级别AAABBB

10a480ff911174b10dd3a02096c1610b.gif

编写排版太麻烦,不喜欢也别喷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

边缘计算参考架构3.0

来源:萤火虫智能家居沙龙全球已经掀起行业数字化转型的浪潮,数字化是基 础,网络化是支撑,智能化是目标。通过对人、物、环境、过程等对象,进行数字化而产生数据,通过网络化实 现数据的价值流动,…

tensorflow 转张量类型为float_5个简单的步骤掌握Tensorflow的Tensor

在这篇文章中,我们将深入研究Tensorflow Tensor的细节。我们将在以下五个简单步骤中介绍与Tensorflow的Tensor中相关的所有主题:第一步:张量的定义→什么是张量?第二步:创建张量→创建张量对象的函数第三步&#xff1a…

华为手机怎么使用读卡器_华为手机使用小窍门

华为手机电池耐用,信号好,系统流畅,外观也一改以往的呆板现在追求时尚,所以深得国人的喜爱,也因为美国的打压激起了国人的爱国意识,华为在国内手机销量高居第一,使用的人很多。现在国产最好的手…

报告 | 数字孪生城市研究报告(2019年)

来源 :数据观数字孪生技术应用最早起源于工业领域,尤其飞机、火车发动机等高端制造领域,对产品、生产线和工艺等进行数字仿真、实时跟踪,研发周期大幅缩减,生产成本大幅降低,形成多设备互联、协同和优化的建…

win10开始不显示python_win10从零安装配置pytorch全过程图文详解

1.安装anaconda (anaconda内置python在内的许多package,所以不用另外下载python) 可以点击下面的清华开源软件镜像站,在官网下载anaconda不如在这下的快 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 镜像站 我下载的…

暗备用的运行状态_瞧:我利用“无偏二极管”发明设计出了【宇宙“暗物质”、“暗能量”探测器】...

《瞧:我利用“无偏二极管”发明设计出了【宇宙“暗物质”、“暗能量”探测器】》楔子:首先,我要在此留下“2020”——“爱你爱你”印迹的一张照片:这不是口罩而是爱!中国人以【爱家人、爱自己】这一特殊形式的“爱”战…

【必读】2019年深度学习自然语言处理最新十大发展趋势, 附报告下载

https://blog.floydhub.com/ten-trends-in-deep-learning-nlp/来源:专知2018年是基于深度学习的自然语言处理(NLP)研究发展快速的一年。在此之前,最引人注目的是Word2Vec,它于2013年首次发布。在此期间,深度学习模型在语言建模领域…

spring 事务隔离级别和传播行为_Spring事务的传播行为案例分析

网上关于Spring事务传播性以及隔离型的文章漫天盖地,还有不负责任的直接复制名词意思,文章虽然很多却是看的云里雾里,我们今天将给出案例分别和大家一起学习。1、spring给出经常面试的考点Spring事务的4个特性含义---这个很容易理解2、spring…

Science:睡眠剥夺影响大脑思考竟是因为蛋白质罢工了!

来源:生物探索睡眠会影响我们的思维,当我们获得充足的睡眠后,大脑思维会变得清晰;而当我们睡眠不足时,大脑会变得迟钝。那么进入睡眠状态后,大脑又是如何调整以保证睡醒后脑回路清晰的呢?近日&a…

element ui input视图没刷新_[Selenium自动化测试实战] 如何在UI自动化测试中加入REST API的操作...

问题当我们描述一个“好的自动化测试用例”时,经常出现标准是:精确。自动化测试用例应该测试一件事,只有一件事。与测试用例无关的应用程序的某个部分中的错误不应导致测试用例失败。独立。自动化测试用例不应该受测试套件中任何其他测试用例…

语句中如何结束本循环进入下一循环_Python3基础语法(八)--控制循环 while...

一、while 简介Python 的循环有 for 和 while 两种&#xff0c;while 为条件控制循环&#xff0c;通过循环控制条件表达式控制循环结束。流程图如下&#xff1a;Python 中 while 语句的格式如下&#xff1a;while <条件表达式>:【语句块】释&#xff1a;当 while 的 <…

关于生命、宇宙和万事万物的42个终极问题

来源&#xff1a;世界科技创新论坛" 我们的宇宙是否稳定&#xff0c;黑洞熵的起源和温度是什么&#xff0c;爱因斯坦的相对论和标准场论总是有效的吗&#xff0c;时空几何中是否存在奇异的性质&#xff0c;化学、应用物理和科技的极限是什么……“在达到完全开悟的道路上&…

python decimal_【进阶】嫌弃Python慢,试试这几个方法?

(给机器学习算法与Python学习加星标&#xff0c;提升AI技能)选自towardsdatascience&#xff0c;作者&#xff1a;Martin Heinz本文转自机器之心(nearhuman2014)本文将介绍如何提升 Python 程序的效率&#xff0c;让它们运行飞快&#xff01;计时与性能分析在开始优化之前&…

王道8套有变化吗_求求你别再套花艺设计公式了

花艺设计也有公式吗&#xff1f;确实有花艺设计只有公式吗&#xff1f;并不是无论是哪门设计学科&#xff0c;公式这种东西&#xff0c;谈多了是否有种千篇一律的感觉&#xff1f;设计风格相似的花艺师要越来越多&#xff0c;一时间竟然以为都是一个人。就和网红一样&#xff0…

对象构造函数的原型图

对象的定义其实很广泛,万物皆为对象,我们创建对象一般都是用构造函数来创建的,这里我们来说说构造函数创建对象的原型图把. 这个问题有点抽象,举个例子来说,方便一点: 这是我们构造函数,这里我们要结合一张 图来说明就更清楚了,这里我们就用一个实例p1好了,其他两个就不用了. 这…

站在AI与神经科学交叉点上的强化学习

来源&#xff1a; 混沌巡洋舰一&#xff0c;强化学习概述让机器来决策&#xff0c;首先体现在如何模仿人类的决策。对于决策这个问题&#xff0c; 对于人类是困难的&#xff0c; 对于机器就更难。而强化学习&#xff0c; 就是一套如何学习决策的方法论。强化学习最初的体现就是…

澜起科技云计算服务器_服务器严重缺货!云应用大爆发!云计算正强势起爆(附龙头)...

催化因素&#xff1a;这两天全国上千万企业、近两亿人开启在家办公模式。阿里、华为、腾讯等各大网络办公平台纷纷告急。对云服务的需求大增也让服务器生产企业开足马力&#xff0c;春节假期里&#xff0c;山东浪潮集团就接到了1500台服务器的订单。目前&#xff0c;多家软件服…

车险赔付率分析报告_车险有变!价格…

各位车友请注意&#xff01;《商业车险综合示范条款(2020版征求意见稿)》于近日发布向社会公开征求意见从修订版条款的内容来看大幅删减了责任免除项目扩展了保险责任在最大化让利于消费者的同时努力提升消费者体验那么&#xff0c;此次修订版有哪些具体的亮点呢&#xff1f;一…

“众声喧哗”中的VR,谁来买单?

来源&#xff1a;VR每日必看未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&…

.npy文件_Numpy库使用入门(六)文件的存取

ERNIE&#xff1a;BERT&#xff0c;你看到我的npy了吗&#xff0c;我记得我放在这个文件夹里的呀(」&#xff1e;&#xff1c;)」BERT&#xff1a;就你还有npy&#xff1f;我还单着呢&#xffe3;へ&#xffe3;ERNIE&#xff1a;你想什么呢&#xff1f;我指的是numpy储存数据的…